【问题标题】:How to break out of a foreach once a condition is met?一旦满足条件,如何突破foreach?
【发布时间】:2013-08-03 10:51:27
【问题描述】:

我有一种情况,在处理对象时,我通常使用 foreach 来循环遍历它,如下所示:

foreach ($main_object as $key=>$small_object) {
...

}

但是,我需要像这样在其中放置一个条件:

foreach ($main_object as $key=>$small_object) {
   if ($small_object->NAME == "whatever") {
      // We found what we need, now see if he right time.
      if ($small_object->TIME == $sought_time) {
          // We have what we need, but how can we exit this foreach loop?
      }
}

这样做的优雅方法是什么?如果找到匹配项,让它继续循环似乎很浪费。还是有另一种更好的方法来做到这一点?可能使用 for 而不是 foreach?

【问题讨论】:

  • 可以在 foreach 中使用 break 吗?我在 switch/case 和 while 中看到它,但是 break 在 foreach 中起作用吗?如果是这样,以这种方式使用 break 是一种很好的编程风格吗?

标签: php loops foreach conditional


【解决方案1】:

来自 PHP 文档:

break 结束当前 for、foreach、while、do-while 或 switch 结构的执行。

是的,您可以使用它来退出 foreach 循环。

【讨论】:

  • 哇,谢谢!一直以来,我只将它与 switch/case 一起使用。
【解决方案2】:

在 if 条件中使用break 语句:

if ($small_object->TIME == $sought_time) {
   break;       
}

break 语句将跳出循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    相关资源
    最近更新 更多