今天我在阅读PHP 官方手册页上的What Reference Do文章,发现以下代码:
<?php
$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) */
这就是手册中有关此代码的内容:
数组内的引用有潜在的危险。使用右侧的引用进行普通(非引用)赋值不会将左侧变为引用,但数组内的引用会保留在这些普通赋值中。这也适用于数组按值传递的函数调用。
有人能解释一下为什么在执行代码后我们的 $a 和 $arr 等于 2 吗?