【发布时间】:2011-11-08 23:47:39
【问题描述】:
我需要在这里使用 break 还是会停止循环并只返回一次?
for($i = 0; $i < 5; $i ++) {
if($var[$i] === '') return false;
// break;
}
谢谢!
【问题讨论】:
我需要在这里使用 break 还是会停止循环并只返回一次?
for($i = 0; $i < 5; $i ++) {
if($var[$i] === '') return false;
// 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.
}
或:
$items = ['a' , 'b' , 'c'];
foreach($items as $item)
{
return $item == 'a'; // if 'a' is found, true is returned. Otherwise false.
}
【讨论】:
return 有效。简单示例:$items = ['a' , 'b' , 'c']; foreach($items as $item) { echo $item; if($item == 'a') return true; }
如果您使用return,您的函数(或整个脚本)将返回 - 之后的所有代码都不会执行。所以回答你的问题:这里不需要break。但是,如果break 没有在此处注释掉,则循环将在一次迭代后停止。这是因为您的 if 语句不使用大括号 ({ ... }),因此它仅涵盖 return 语句(换句话说:您的示例中的 break 始终被执行)。
【讨论】:
它将只运行一次,停止循环,并退出函数/方法。
可以说这是一种不好的风格。后面很容易忽略return,不利于调试和维护。
使用break 可能更简洁:
for($i = 0; $i < 5; $i ++) {
if($var[$i] === '')
{ set_some_condition;
break;
}
}
if (some_condition)
return;
【讨论】: