この記事では主にPHPのリターン参照とローカル静的変数の理解を紹介します。リターン参照を記述する一般的な方法は、メソッド名の前に&を追加することです。ローカル静的変数も非常に便利です。必要です。友達はそれを参照できます
まずマニュアルをお読みください
==========
関数から参照を返すには、関数を宣言するときと戻り値を変数に代入するときに、参照演算子 & の両方を使用する必要があります。
コードは以下の通りです:
関数&returns_reference()
{
$someref = 0;
$someref を返す;
}
$newref = &returns_reference();//$newref = &$someref;と同等
?>
引用について詳しくは、引用の説明をご覧ください。
多くのオープンソース コードが好んで使用するシングルトン登録モデルを見てみましょう
コードは以下の通りです:
クラス a{}
クラス b{}
関数&aa($name)
{
static $class = array(); //ローカル静的変数はメソッドの実行が終了しても消えず、ソースプログラム全体が終了してライフサイクルが終了するまで存続します
if(!$class[$name]) //つまり、ここでの宣言/初期化ステートメントは、最初に宣言されたときにのみ機能します
{ //このメソッドが後で呼び出されるとき、静的変数は値を再初期化しなくなります
$class[$name] = new $name();
}
$class[$name]を返す;
}
$a = & aa('a');
$b = & aa('b');
$a2 = & aa('a');
$b2 = & aa('b');
echo $a === $a2 ? '$a と $a2 は同じインスタンス化されたオブジェクトです
':'';
。