一旦满足条件,如何突破前缘?

2022-08-30 22:45:56

我有一种情况,在处理对象时,我通常使用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?


答案 1

来自 PHP 文档:

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

所以,是的,你可以用它来摆脱前循环。


答案 2

在 if 条件中使用以下语句:break

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

break语句将中断循环。


推荐