この記事では主にphpの関数の前にあるアンパサンドの分解を紹介します。その関数は少し抽象的ですが、必要な方はこの記事の内容を読んでください。
php変数の前のアンパサンドは、それが何を意味するかは言うまでもありませんが、これは2つの変数が同時に1つのアドレスを指すことを意味します。関数?以下に 2 つのデモ コードを最初に示し、次に説明を示します。
function &chhua() { static $b="www.jb51.net";//申明一个静态变量 $b=$b."WEB开发"; echo $b; return $b; } $a=chhua();//这条语句会输出 $b的值 为“www.jb51.netWEB开发” $a="PHP"; echo "<Br>"; $a=chhua();//这条语 句会输出 $b的值 为“www.jb51.netWEB开发WEB开发” echo "<Br>"; $a=&chhua();//这条语句会输出 $b的值 为“www.jb51.netWEB开发WEB开发WEB开发” echo "<Br>"; $a="JS"; $a=chhua(); //这条语句会输出 $b的值 为"JSWEB开发" function &test() { static $b=0;//申明一个静态变量 $b=$b+1; echo $b; return $b; } $a=test();//这条语句会输出 $b的值 为1 $a=5; $a=test();//这 条语句会输出 $b的值 为2 $a=&test();//这条语句会输出 $b的值 为3 $a=5; $a=test(); //这条语句会输出 $b的值 为6
2つ目の関数を説明しましょう。
この方法で $a=test(); が取得するものは、実際には関数参照の戻りではなく、通常の関数呼び出しと何ら変わりません。
理由としては: これは PHP の規定です
PHP には $a=&test が必要です() ; メソッドは関数の参照戻り値です
参照戻り値とは何かについては (PHP マニュアルには、参照戻り値は関数を使用して参照をバインドする必要がある変数を見つけたい場合に使用されます)
上の例は、
$a=test() を使用して関数を呼び出すと、関数の値が $a に割り当てられるだけであり、$a への変更は関数内の $b に影響を与えないことを説明しています。 =&test() メソッド内の関数。その関数は、戻り値 $b の変数のメモリ アドレスと $a 変数のメモリ アドレスを同じ場所にポイントすることです。つまり、効果は同等です。これに ($ a=&b;) したがって、$a の値を変更すると $b の値も変更されるため、
$a=&test(); $a=5; を実行すると、$b の値は 5 になります。
以上がphp 関数の前のアンパサンドはどのような用途に使用されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。