PHP - перерыв после возврата? - PullRequest
20 голосов
/ 02 сентября 2011

мне нужно использовать разрыв здесь или он прекратит зацикливаться и просто вернется один раз?

for($i = 0; $i < 5; $i ++) {
    if($var[$i] === '') return false;
    // break;
}

Спасибо!

Ответы [ 3 ]

17 голосов
/ 02 сентября 2011

Он будет запущен только один раз, остановит цикл и выйдет из функции / метода.

Можно утверждать, что это плохой стиль.Очень просто пропустить return позже, что плохо для отладки и обслуживания.

Использование break может быть чище:

for($i = 0; $i < 5; $i ++) {
    if($var[$i] === '')
     { set_some_condition; 
       break;
     }
}

if (some_condition)
 return;
12 голосов
/ 02 сентября 2011

Если вы используете return, ваша функция (или весь скрипт) вернется - весь код после этого не будет выполнен. Итак, чтобы ответить на ваш вопрос: break здесь не требуется. Однако, если бы break не было здесь закомментировано, цикл остановился бы после одной итерации. Это потому, что ваш оператор if не использует фигурные скобки ({ ... }), поэтому он охватывает только оператор return (другими словами: break в вашем примере всегда выполняется).

7 голосов
/ 29 сентября 2017

Обновление :

PHP 7 требует return. break; не требуется, поскольку цикл заканчивается на return.

A break; обычно используется в переключателе или цикле всякий раз, когда вы нашли нужный элемент.

Пример:

$items = ['a' , 'b' , 'c']; 

foreach($items as $item) 
{ 
   if($item == 'a') 
   {
       return true; // the foreach will stop once 'a' is found and returns true. 
   }

   return false; // if 'a' is not found, the foreach will return false.
}
...