可能重复:
循环引用后的奇怪行为 - 这是 PHP 错误吗?
考虑这段代码:
$start = array("a", "b", "c");
foreach ($start as &$item) {}
foreach ($start as $item) {}
print_r($start);
当我对数组进行 foreach 并使用元素作为参考,然后再次进行 foreach 时,但这次使用普通变量,但保持与参考的变量名称相同,输入数组的最后一个元素被前一个的内容覆盖一。
上面的代码输出:
Array
(
[0] => a
[1] => b
[2] => b
)
谁能解释我为什么会这样?我想这是一个内存寻址问题,但在这种现象中找不到任何逻辑。这里的幕后究竟发生了什么?