これがforeachを行う理由:
$abc = array('a','b');
foreach ($abc as $k => &$a) {
echo $a;
$abc[] = 'c';
if ($k > 5) die;
}
これを出力します:
abccccc
そしてこれ:
$abc = array('a');
foreach ($abc as $k => &$a) {
echo $a;
$abc[] = 'c';
if ($k > 5) die;
}
これを出力します:
a
両方の foreach が同じように動作することを期待していました (キー = 6 まで反復)。