直接上代码:
<?php $num1 = 1; $num2 = $num1; $num1 = 2; echo $num2 . " "; $arr1 = array(1, 2); $arr2 = $arr1; $arr1[0] = 3; print_r($arr2); $obj1 = new StdClass(); $obj2 = $obj1; $obj1->val = 1; print_r($obj2);
上述代码的输出结果为:
// number 1 // Array Array ( [0] => 1 [1] => 2 ) // Object stdClass Object ( [val] => 1 )
由此可以看出,将一个变量赋值给另外一个变量,如果是对象,那么就是引用赋值;如果非对象(数值、字符串、数组等),就是重新分配内存空间。