最近、私はこのコードに出くわしました:
public static function &get_instance()
{
return self::$instance;
}
この種の関数宣言&get_instance()
はどういう意味ですか?関数名を変数にすることはできますか?
最近、私はこのコードに出くわしました:
public static function &get_instance()
{
return self::$instance;
}
この種の関数宣言&get_instance()
はどういう意味ですか?関数名を変数にすることはできますか?
これは、古いスタイルのコードのシングルトンパターンの一部です。
シングルトンは、クラスのインスタンスが1つだけであることを確認するために使用されるパターンです。(技術的には、任意のクラスのインスタンスが特定の数あることを確認するために使用できますが、その数はほとんどの場合1つです。)これはGang of Fourパターンの1つであり、その使用と乱用についての無限の議論を見つけることができます。ウェブ上。
これは、の結果がget_instance()
参照によって返されることを意味します。PHP 5以降、オブジェクトは常に参照によるものであるため、そのようなコードを作成することはもはや意味がありません。ちなみに、public
これはPHP 5コードであることを意味するため、特に興味深いものです。