数组和引用

时间:2012-06-23 09:00:42

标签: php-5.3

<?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的内容即使不是参考,也会被更改!

有人能告诉我这是怎么回事吗?

1 个答案:

答案 0 :(得分:0)

在PHP中,所有数组复制都是通过引用。如果你想要浅拷贝,你需要明确地复制一些东西。

所以即使你没有通过引用分配给$arr2,因为$arr是一个数组,它们最终都引用了同一个数组对象。