日期:2014-05-17  浏览次数:20572 次

php5 值赋值与引用赋值
值赋值——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.
?>