值赋值――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,zhao echo "<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. ?>