2013-01-15 53 views
2

我有一個PHP循環,其下工作正常,但有時會有一個錯誤頁面由CURL請求返回,我如何才能重新啓動當前頁面的操作而不重新啓動整個循環?當檢測到錯誤時,重新啓動while循環的當前操作

while ($daytofetch <= $lastdaytofetch) { 

//Do all my stuff and run curl request here 

$daytofetch++ 

} 

回答

1
while ($daytofetch <= $lastdaytofetch) { 

    // Do all my stuff and run curl request here 

    if ($error_detected) { 
     // This will resume the loop without incrementing 
     // $daystofetch 
     continue; 
    } 

    $daytofetch++ 
} 
+0

所以你可以確認'繼續'會重新啓動它在$ daytofetch上啓動的循環? – Jack

+0

使用'continue'將返回while循環的開始位置,而不更改任何不需要更改的值。所以在這種情況下,執行'continue'語句後,'$ daytofetch'將具有與'while'循環的特定迭代開始時相同的值。 –

+0

好的,謝謝,我是否也會說「break」命令會退出並停止循環? – Jack

2

我可能會做這樣的事情:

while ($daytofetch <= $lastdaytofetch) { 
    $error = false; 


    //Do all my stuff and run curl request here 
    //if there is an error, then set $error = true; 


    if (!$error) 
     $daytofetch++ 
} 
+3

記住,這樣做你可以得到一個無限循環,如果頁面總是給人一個錯誤+您發送大量請求到該服務器。也許你可以計算錯誤,並在3次錯誤之後停止重試。 –