我需要在这里使用break还是会停止循环并返回一次?
for($i = 0; $i < 5; $i ++) {
if($var[$i] === '') return false;
// break;
}
谢谢!
答案 0 :(得分:17)
它只运行一次,停止循环,退出函数/方法。
虽然这是不好的风格,但可以说是有争议的。很容易忽略return
以后的调试和维护。
使用break
可能更干净:
for($i = 0; $i < 5; $i ++) {
if($var[$i] === '')
{ set_some_condition;
break;
}
}
if (some_condition)
return;
答案 1 :(得分:11)
如果您使用return
,您的函数(或整个脚本)将返回 - 之后的所有代码都将无法执行。所以回答你的问题:这里不需要break
。但是,如果此处未注释break
,则循环将在一次迭代后停止。那是因为你的if语句不使用大括号({ ... }
)所以它只包含return
语句(换句话说:你的例子中的break
总是被执行)。
答案 2 :(得分:6)
更新:
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.
}