值赋值——2个变量有各自的内存,互不影响
$str1 = "wang";$str2 = $str1;$str1 = "zhang";echo $str2; // wang
引用赋值——用“&”,2个变量共用一个内存,一个变化,另一个也变化。
$i = "zhao";$j = "wang";$j = &$i;echo $j; // zhao$j = "hello,$j";echo $j; //hello,zhaoecho "<br/>";echo $i; //hello,zhao
需要注意的是只有命名变量才可以传地址赋值,这一点非常重要。
<?php$foo = 25;$bar = &$foo; // This is a valid assignment.$bar = &(24 * 7); // Invalid; references an unnamed expression.function test(){ return 25;}$bar = &test(); // Invalid.?>