2014-12-13 107 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