我倾向于发现,当使用foreach结构而不使用引用时,数组中的某些元素缺失。PHP 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
我不这么认为人...你是否期待元素从1开始而不是0? –
向我们展示目前在foreach中执行的内容是什么? – bwoebi
您能否创建一个显示问题的确切示例? –