2013-01-13 87 views
0

我一直在我的foreach循环中出现问题,其中一部分循环在一次迭代后终止,没有输出或错误。什么导致PHP foreach循环终止?

寻找答案的网页后,我仍然不知道这个问题的任何可能的原因(和代码是太大,无法向社会有用...)

所以我的问题是,“ foreach循环在一次迭代后终止的可能原因是什么?“ (假设需要更多迭代)

+1

请发布您的代码。 –

+0

也许是一个'break'指令。 – CoursesWeb

+0

'break','die'和'return'都可以完全取消一个foreach,'continue'可以跳过迭代,但不会打破循环。 – Sammaye

回答

0

有多种方法可以停止foreach循环。下面是几个例子:

<?php 
$range = range(1,10); 

// continue; 
foreach($range as $r){ 
    if($r!=1){ 
     continue; 
    } 
    echo $r.'<br>'; 
} 

// break; 
foreach($range as $r){ 
    if($r>1){ 
     break; 
    } 
    echo $r.'<br>'; 
} 

// die; 
foreach($range as $r){ 
    if($r>1){ 
     die; 
    } 
} 

注:continue不会爆发foreach循环的,但可能会导致数据行被“跳过”

+0

'continue'不会终止循环,而是跳到下一个索引。 –

+0

是的,我将其添加到底部。 –

0

它仅适用于数组和对象,并会发出当您尝试在具有不同数据类型或未初始化变量的变量上使用它时出现错误。

我认为你应该必须按照这个链接http://php.net/manual/en/control-structures.foreach.php更好地了解foreach循环。

+0

如果他遇到这种情况,那么这个foreach将会导致一个致命错误,甚至不会进入第一次迭代。 – Sammaye