为什么 this foreach:
$abc = array('a','b');
foreach ($abc as $k => &$a) {
echo $a;
$abc[] = 'c';
if ($k > 5) die;
}
输出:
abccccc
this 一:
$abc = array('a');
foreach ($abc as $k => &$a) {
echo $a;
$abc[] = 'c';
if ($k > 5) die;
}
输出:
a
我希望两个foreach的行为方式相同(迭代直到key = 6)。
答案 0 :(得分:2)
因为第二个foreach第二次没有事件foreach,即只进行一次迭代,因此即使添加了一个元素,当foreach已经结束时也会发生添加(它开始于它只有一个元素,它不能继续循环)