参照を使用せずに 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 */ }
私のコードでは、これが 3 回独立して発生しました。修正は簡単 (& を追加) ですが、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