<?php
/* Assignment of array variables */
$arr = array(1);
$a =& $arr[0]; //$a and $arr[0] are in the same reference set
$arr2 = $arr; //not an assignment-by-reference!
$arr2[0]++;
?>
输出为$a == 2
,$arr == array(2)
。
$arr
的内容即使不是参考,也会被更改!
有人能告诉我这是怎么回事吗?
答案 0 :(得分:0)
在PHP中,所有数组复制都是通过引用。如果你想要浅拷贝,你需要明确地复制一些东西。
所以即使你没有通过引用分配给$arr2
,因为$arr
是一个数组,它们最终都引用了同一个数组对象。