一旦满足条件,如何打破foreach?

Edw*_*ard 12 php foreach conditional loops

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

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

}
Run Code Online (Sandbox Code Playgroud)

但是,我需要在这里添加一个条件:

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?
      }
}
Run Code Online (Sandbox Code Playgroud)

这样做的优雅方式是什么?如果发现匹配,让它继续循环似乎很浪费.或者还有另一种做法更好吗?可能使用for而不是foreach?

cir*_*van 32

从PHP文档:

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

所以是的,你可以用它来摆脱foreach循环.


Cod*_*ver 8

使用break if条件中的语句:

if ($small_object->TIME == $sought_time) {
   break;       
}
Run Code Online (Sandbox Code Playgroud)

break 声明将突破循环.