この記事では、PHP の参照を理解し、関数の参照の受け渡しと参照の戻りについて詳しく紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。
php への参照 (つまり、変数、関数、オブジェクトなどの前にアンパサンドを追加します)
PHP での参照 意味: 異なる名前が同じ変数の内容にアクセスします。
C言語のポインタとは異なります。 C言語におけるポインタは変数の内容とメモリ上に格納されているアドレスを格納します。
1. 変数リファレンス
PHP リファレンスでは、2 つの変数を使用して同じコンテンツを指すことができます
<?php $a = 'abc'; $b = &$a; var_dump($a,$b);//均为'abc' $b = 123; var_dump($a,$b);//均为123
2. 関数パス参照による (アドレスによる呼び出し)
<?php function test(&$a){ $a = $a + 100; } $b = 1; test($b); var_dump($b);//101
$b が関数に渡すものは、実際には $b の変数内容が配置されているメモリ アドレスであり、これは $a の値を変更することで変更できます。 $b
注:
上記の「test($b);」の $b の前にアンパサンドを追加しないでください。 " ですが、関数内 "call_user_func_array" では、パラメータを参照渡ししたい場合は、& 記号
<?php function test(&$a){ $a = $a + 10; } $b = 1; call_user_func_array('test',array(&$b)); var_dump($b);//11
3 が必要です。関数の参照は # を返します。 ##
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
class talker{ private $data = 'Hi'; public function &get(){ return $this->data; } public function out(){ echo $this->data; } } $aa = new talker(); $d = &$aa->get(); $aa->out(); $d = 'How'; $aa->out(); $d = 'Are'; $aa->out(); $d = 'You'; $aa->out(); //输出为HiHowAreYou
PHP ビデオ チュートリアル》
以上がPHPの関数の参照渡しと戻り方を詳しく解説(コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。