3

重複の可能性:
アンパサンドを使用してPHP関数を開始するとはどういう意味ですか?

最近、私はこのコードに出くわしました:

public static function &get_instance()
{
return self::$instance;
}

この種の関数宣言&get_instance()はどういう意味ですか?関数名を変数にすることはできますか?

4

2 に答える 2

4

これは、古いスタイルのコードのシングルトンパターンの一部です。

シングルトンは、クラスのインスタンスが1つだけであることを確認するために使用されるパターンです。(技術的には、任意のクラスのインスタンスが特定の数あることを確認するために使用できますが、その数はほとんどの場合1つです。)これはGang of Fourパターンの1つであり、その使用と乱用についての無限の議論を見つけることができます。ウェブ上。

于 2012-06-08T19:54:13.873 に答える
2

これは、の結果がget_instance()参照によって返されることを意味します。PHP 5以降、オブジェクトは常に参照によるものであるため、そのようなコードを作成することはもはや意味がありません。ちなみに、publicこれはPHP 5コードであることを意味するため、特に興味深いものです。

于 2012-06-08T19:58:18.650 に答える