两个foreach之间的差异(向数组添加新元素)

时间:2012-10-08 22:21:50

标签: php arrays foreach

为什么 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)。

1 个答案:

答案 0 :(得分:2)

因为第二个foreach第二次没有事件foreach,即只进行一次迭代,因此即使添加了一个元素,当foreach已经结束时也会发生添加(它开始于它只有一个元素,它不能继续循环)