1

可能重复:
循环引用后的奇怪行为 - 这是 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
)

谁能解释我为什么会这样?我想这是一个内存寻址问题,但在这种现象中找不到任何逻辑。这里的幕后究竟发生了什么?

4

0 回答 0