PHP - перерыв после возвращения?
Нужно ли мне использовать break здесь или он прекратит цикл и просто вернется один раз?
for($i = 0; $i < 5; $i ++) {
if($var[$i] === '') return false;
// break;
}
Спасибо вам!
3 answers
Он будет запущен только один раз, прекратит цикл и выйдет из функции/метода.
Хотя можно было бы возразить, что это плохой стиль. Очень легко не заметить это return
позже, что плохо сказывается на отладке и обслуживании.
Использование break
может быть чище:
for($i = 0; $i < 5; $i ++) {
if($var[$i] === '')
{ set_some_condition;
break;
}
}
if (some_condition)
return;
Если вы используете return
, ваша функция (или весь скрипт) вернет - весь код после этого не будет выполнен. Итак, чтобы ответить на ваш вопрос: break
здесь не требуется. Однако, если бы break
не был закомментирован здесь, цикл остановился бы после одной итерации. Это потому, что в вашем операторе if не используются фигурные скобки ({ ... }
), поэтому он охватывает только оператор return
(другими словами: break
в вашем примере всегда выполняется).
Обновление:
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.
}