2012-06-04 2 views
0

Я хочу запустить две петли один за другим, но это кажется return заявление в первом цикле заканчивается сценарий:альтернатива возврату в PHP?

// this runs 
for ($i = 0; $i < 3; $i++) { 
    try { 
     foo(); 
     return true; 
    } catch (Exception $e) { 
     try { 
      bar(); 
     } catch (Exception $e) { 
      return false; 
     } 
    } 
} 


// this doesn't 
for ($i = 0; $i < 3; $i++) { 
    try { 
     foo(); 
     return true; 
    } catch (Exception $e) { 
     try { 
      bar(); 
     } catch (Exception $e) { 
      return false; 
     } 
    } 
} 
+1

Я думаю, вы ищете 'break;' - или вы можете поместить его в функцию. – igorw

ответ

4

Вы не можете использовать return внутри цикла, он предназначен для методов функций/классов.

Вы должны заменить return false на break, эквивалент цикла и return true с continue. Однако, как заметил Джон Конде, вы можете просто оставить continue в этом примере.

function   loop 
--------------------------- 
return true;  continue; 
return false; break; 
1

Снимите return true и заменить его ничем.

Или, используйте continue. Он перезапустит цикл из следующей итерации.

обновление

Заменить return false с break, как указано в комментариях

+0

Ах, а 'break' для' return false'? – 3zzy

+0

Да. Это точно. –

Смежные вопросы