首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >你能在PHP中“退出”一个循环吗?

你能在PHP中“退出”一个循环吗?
EN

Stack Overflow用户
提问于 2009-02-26 02:44:51
回答 6查看 284.9K关注 0票数 129

我有一个在PHP代码中执行错误检查的循环。它最初看起来像这样……

代码语言:javascript
复制
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
}

这一切都运行的很好,但是它仍然循环通过,尽管在一个错误之后它不需要。有没有办法避免循环?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-02-26 02:47:16

您要查找的是break语句。

代码语言:javascript
复制
$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";
}
票数 222
EN

Stack Overflow用户

发布于 2009-02-26 02:58:57

正如在其他帖子中所述,您可以使用break关键字。有一件事被暗示但没有解释,那就是关键字可以接受一个数值来告诉PHP要突破多少层。

例如,如果您有三个相互嵌套的foreach循环,试图找到一条信息,您可以执行“break 3”来摆脱所有三个嵌套循环。这将适用于' for‘、'foreach’、'while‘、'do-while’或'switch‘结构。

代码语言:javascript
复制
$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
票数 159
EN

Stack Overflow用户

发布于 2009-02-27 02:03:06

break;会离开你的循环。

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

票数 49
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/588892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档