当前位置:  开发笔记 > 编程语言 > 正文

你可以在PHP中"退出"一个循环吗?

如何解决《你可以在PHP中"退出"一个循环吗?》经验,为你挑选了4个好方法。

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

这一切都很好,但它仍然循环,尽管一个错误后它不需要.有没有办法逃脱循环?



1> TheTXI..:

您正在寻找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
\n"; }


@Gabriel,它回答了这个问题,代码示例正是如此,一个样本.您也可以抱怨非描述性的"$ arr"数组名称.
@Gabriel:我发布了PHP手册中直接引用的代码,它准确地显示了break语句的用法.
那*是一种奇怪的循环方式!

2> William Holr..:

如其他帖子中所述,您可以使用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


好点子.在顶部附近的PHP手册中非常清楚地解释了它.我不认为这对于这个特定的问题是必要的,但这仍然是非常好的知识.+1

3> Hans..:

break; 离开你的循环.

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



4> Gabriel Sosa..:

使用休息

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有