変数参照
ケース:
<?php //变量单独引用 $test = "a string!\n"; $quote = &$test; echo $test; //a string! echo $quote;//a string! $quote = "exchange!\n"; echo $test; //exchange! echo $quote;//exchange! unset($quote); echo $test; //exchange! //函数传参引用 $num = 10; echo $num."\n"; test($num); echo $num."\n"; function test( &$num) { $num += 10; }
結論
PHP 変数参照は、同じコンテンツを指す異なる変数と同等です。この内容も操作されます。一方の参照が削除されても、もう一方の参照には影響しません。削除された変数が同じ内容を指さなくなったのと同じですが、定数にすることはできません。 (これは、人が複数の名前を持つことに相当します。時間内に名前を削除しても、その人の実体には影響しません)
推奨事項: php トレーニング
関数リファレンス 戻り値
ケース 1:
<?php $t = test(); // 1 var_dump($t); // int(1) $t = 20; $t = test(); //2 var_dump($t); //int(2) $t = &test(); //3 var_dump($t) ; //int(3) $t = 20; $t = test(); //21 var_dump($t); //int(21) function &test() { static $test = 0; $test += 1; echo $test."\n"; return $test; }
ケース 2:
?php $t = test(); function &test() { static $test = 0; $test += 1; echo $test."\n"; } $ php test.php 1 PHP Notice: Only variable references should be returned by reference in /home/q/www/zt.dujia.qunar.com/test.php on line 9
結論:
は $t = と同等です。 &test; 率直に言えば、それは依然として間の変数参照の 1 つです。
オブジェクト参照
ケース:
<?php class a{ var $abc="ABC"; } $b=new a; $c=$b; echo $b->abc;//这里输出ABC echo $c->abc;//这里输出ABC $b->abc="DEF"; echo $c->abc;//这里输出DEF ?>
Reference は、実際には複数の操作名が与えられた変数空間です。これらの操作名は、すべてある操作名がその空間を操作する場合、他の操作名によって得られる結果も変わります。
引用の役割:
一般的に、変数が宣言されるたびに、一定量のスペースが占有されます。
関数パラメータの受け渡しの利便性により、元の空間の内容を直接変更できると同時に、中間変数の空間オーバーヘッドも削減できます。
php についてさらに詳しく知りたい場合は、php 無料トレーニング Web サイトをご覧ください。
以上がPHPリファレンス(&)事例紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。