我倾向于发现,在不使用引用的情况下使用 foreach 结构时,数组的某些元素会丢失。
$array = array();
/* ... */
$array[] = 1;
$array[] = 2;
$array[] = 3;
/* ... */
print_r($array); /* print_r always shows all elements */
foreach ($array as $element) { /* missing elements */ }
foreach ($array as &$element) { /* does a fine job */ }
我的代码中出现了三个独立的事件。修复很容易(添加&),但它听起来像是 PHP 或我的设置中的错误......
有更多的人遇到这种情况吗?问题是什么?
PHP 5.4.12
编辑
案子:
$a = array();
$a[] = 1;
$a[] = 2;
$a[] = 3;
foreach ($a as &$e)
{
echo $e;
}
echo '<br>';
foreach ($a as $e)
{
echo $e;
}
输出:
123
122