我有一个在PHP代码中执行错误检查的循环。它最初看起来像这样……
foreach($results as $result) {
if (!$condition) {
$halt = true;
ErrorHandler::addErrorToStack('Unexpected result.');
}
doSomething();
}
if (!$halt) {
// do what I want cos I know there was no error
}
这一切都运行的很好,但是它仍然循环通过,尽管在一个错误之后它不需要。有没有办法避免循环?
发布于 2009-02-26 02:47:16
您要查找的是break语句。
$arr = array('one', 'two', 'three', 'four', 'stop', 'five');
while (list(, $val) = each($arr)) {
if ($val == 'stop') {
break; /* You could also write 'break 1;' here. */
}
echo "$val<br />\n";
}
发布于 2009-02-26 02:58:57
正如在其他帖子中所述,您可以使用break关键字。有一件事被暗示但没有解释,那就是关键字可以接受一个数值来告诉PHP要突破多少层。
例如,如果您有三个相互嵌套的foreach循环,试图找到一条信息,您可以执行“break 3”来摆脱所有三个嵌套循环。这将适用于' for‘、'foreach’、'while‘、'do-while’或'switch‘结构。
$person = "Rasmus Lerdorf";
$found = false;
foreach($organization as $oKey=>$department)
{
foreach($department as $dKey=>$group)
{
foreach($group as $gKey=>$employee)
{
if ($employee['fullname'] == $person)
{
$found = true;
break 3;
}
} // group
} // department
} // organization
发布于 2009-02-27 02:03:06
break;
会离开你的循环。
只要条件仍然为真,continue;
就会跳过该循环其余部分的任何代码,并继续执行下一个循环。
https://stackoverflow.com/questions/588892
复制相似问题