2014-12-13 72 views
-1

我想知道如何在switch語句之外跳回到某個case的情況下,因爲代碼將不得不重試剛剛完成的操作。這裏是我的代碼的一個例子;當「錯誤」情況不再是$this->check()函數的結果在switch語句之外跳回

$result = $this->check($user, $password); 

switch($result){ 
    case 'invalid-email-password': 
     //Do stuff 
     break; 

    case 'error': 
     //Do stuff 
     //Jump back to $result = $this->check to try again 
     break; 

的代碼只能繼續。

回答

0

一般情況下,如果你想編寫一個「重試,直到它的工作原理」的東西,可以這樣考慮:

while(true) { 
    doSomething(); 

    if($it_worked) break; 
} 

注意,因爲你在switch聲明的時候,你就需要在使用break 2;成功結果退出switchwhile

若要防止無限循環,您可以使用$attempts計數器進行倒計時,並在缺少嘗試時手動打斷循環。

+0

'switch'語句中的'break'會怎樣?我應該把它們留在那裏,還是隻在有效的結果上打破2? – 2014-12-13 01:22:47