<分区>
Possible Duplicate:
Strange behaviour after loop by reference - Is this a PHP bug?
ideone
代码:
<?php
$arr = array(array(1),array(2),array(3));
foreach($arr as &$i) {
print_r($i);
}
foreach($arr as $i) {
print_r($i);
}
输出
Array
(
[0] => 1
)
Array
(
[0] => 2
)
Array
(
[0] => 3
)
Array
(
[0] => 1
)
Array
(
[0] => 2
)
Array
(
[0] => 2
)
我知道我只需要在第一个循环之后放置一个 unset($i)
来修复它,但我无法真正弄清楚是什么导致了 2
重复。它似乎总是被倒数第二个值覆盖的最后一个值。当数组项是基元(PHP 中的“标量”)时,它似乎不会发生。
当有人忘记取消设置引用时,我遇到过几次重用变量的问题。第一次真的让我很困惑。