PHP - перерыв после возвращения?


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

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

Спасибо вам!

Author: headacheCoder, 2011-09-02

3 answers

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

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

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

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

if (some_condition)
 return;
 14
Author: Pekka 웃, 2011-09-02 08:06:18

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

 10
Author: Rijk, 2011-09-02 08:11:36

Обновление:

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

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.
}
 5
Author: Ronnie Oosting, 2018-01-24 08:25:58