ホームページ  >  記事  >  バックエンド開発  >  PHPにおける参照記号(&)の使い方を詳しく解説

PHPにおける参照記号(&)の使い方を詳しく解説

伊谢尔伦
伊谢尔伦オリジナル
2017-07-17 16:44:472818ブラウズ

PHP での参照は、変数、関数、オブジェクトなどの前に & 記号を追加することです。PHP での参照は、異なる名前が同じ変数の内容にアクセスすることを意味します。

C言語のポインタには違いがあります。 C言語のポインタは、変数の内容がメモリに格納されているアドレス変数への参照を格納します
PHPの参照では、2つの変数を使用して同じ内容を指すことができます

$a="ABC"; 
$b =&$a; 
echo $a;//这里输出:ABC 
echo $b;//这里输出:ABC 
$b="EFG"; 
echo $a;//这里$a的值变为EFG 所以输出EFG 
echo $b;//这里输出EFG

関数のアドレスで呼び出します
。アドレス me で呼び出してください。 早速、コードを以下に示します

function test(&$a) 
{ 
$a=$a+100; 
} 
$b=1; 
echo $b;//输出1 
test($b);   //这里$b传递给函数的其实是$b的变量内容所处的内存地址,通过在函数里改变$a的值 就可以改变$b的值了 
echo "<br>"; 
echo $b;//输出101

ここで test(1) を使用するとエラーが発生することに注意してください
関数の参照の戻り値
;まずコードを見てください

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

以下で説明します:
この方法で $a=test(); によって得られるものは、実際には関数からの参照戻りではありません。理由は次のとおりです。はPHPの規定です
PHPでは$a=&test()で取得すると規定されています
参照リターンとは何かというと(PHPのマニュアルにはこう書いてあります)参照をバインドする必要がある変数を見つけるための関数。) このくだらないことは長い間私を悩ませていました。理解してください
$a=test() を使用して関数を呼び出すと関数の値が代入されるだけであることを説明するために、上の例を使用します。 $a、および $a への変更は関数内の $b には影響しません
$a=&test() を通じて関数を呼び出すと、その関数は $b とメモリを返して $b 変数のメモリ アドレスをポイントします$a 変数のアドレスを同じ場所に設定すると、これと同等の効果が得られます ( $a=&b;) したがって、 $a の値を変更すると、 $b の値も変更されます。 したがって、
$a=&test() を実行した後、 ;
$a=5;
、$b の値は 5 になります。

以上がPHPにおける参照記号(&)の使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。