可能重复:
Strange behaviour after loop by reference - Is this a PHP bug?
考虑以下代码:
$start = array("a", "b", "c");
foreach ($start as &$item) {}
foreach ($start as $item) {}
print_r($start);
当我遍历数组并使用元素作为参考,然后再次使用foreach时,但这次使用普通变量,但保持与refrence相同的变量名,输入数组的最后一个元素被内容覆盖上一个。
以上代码输出:
Array
(
[0] => a
[1] => b
[2] => b
)
有人能解释我为什么会这样吗?我想这是一个内存寻址问题,但在这种现象中找不到任何逻辑。幕后究竟是怎么回事?