你能退出一个循环在PHP中?

我有一个循环,在我的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 } 

这一切都运行良好,但它仍然循环,尽pipe一个错误后它不需要。 有没有办法摆脱循环?

你正在寻找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"; } 

如其他post所述,您可以使用break关键字。 有一点是暗示,但没有解释的是,关键字可以采取一个数值来告诉PHP有多less级别打破。

例如,如果你有三个foreach循环嵌套在对方试图find一条信息,你可以做'中断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 

break; 离开你的循环。

continue; 跳过该循环的其余部分的任何代码,并继续到下一个循环,只要条件仍然为真。

使用rest

 $arr = array('one', 'two', 'three', 'four', 'stop', 'five'); foreach ($arr as $val) { if ($val == 'stop') { break; /* You could also write 'break 1;' here. */ } echo "$val<br />\n"; } 

我已经尝试用CSS的解决scheme,但不能为我工作。

href="#"replace为href="javascript:void(0);" 在这种情况下工作模式不会跳转到顶部并停留在事件元素位置。