2013-01-13 126 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