我有一个循环,在我的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
}
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但它仍然循环,尽管一个错误后它不需要.有没有办法逃脱循环?
The*_*TXI 192
您正在寻找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";
}
Run Code Online (Sandbox Code Playgroud)
Wil*_*oyd 143
如其他帖子中所述,您可以使用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
Run Code Online (Sandbox Code Playgroud)