シングルトン モードの PHP 実装
シングルトン モードでは、特定のクラスのインスタンスが 1 つだけ存在することが保証されます。
1. 静的メンバー変数はクラスの唯一のインスタンスを保存します
2. 新しいインスタンスを防ぐためにコンストラクターとクローン メソッドをプライベートとして宣言します
3. このインスタンスにアクセスし、一意のインスタンスへの参照を返すためのパブリック静的メソッドを提供します
クラスインスタンスデモ
{
private static $_instance;//静的メンバー変数は唯一のインスタンスを保存します
プライベート関数 __construct()//コンストラクター関数
{
echo '私は構築されています';
}
パブリック静的関数 GetInstance()
{
if(!isset(self::$_instance))
{
$c=__CLASS__;
self::$_instance=new $c;//new self()
}
return self::$_instance;
}
//__clone() メソッドをオーバーライドし、クローン作成を無効にします
プライベート関数 __clone()
{
echo "クローンは禁止されています";
}
関数 test()
{
echo("テストインスタンス");
}
}
//静的パブリック メソッドを呼び出して唯一のインスタンスを取得します
$test = InstanceDemo::GetInstance();
$test->test();
//クローン作成は禁止されています
$test_clone = クローン $test;
?>