我傾向於發現,當使用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
您能否創建一個顯示問題的確切示例? –