Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 一旦条件满足,如何冲出困境?_Php_Loops_Foreach_Conditional - Fatal编程技术网

Php 一旦条件满足,如何冲出困境?

Php 一旦条件满足,如何冲出困境?,php,loops,foreach,conditional,Php,Loops,Foreach,Conditional,在处理对象时,我通常使用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.

在处理对象时,我通常使用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?
      }
}
但是,我需要在其中添加一个条件,如下所示:

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

来自PHP文档:

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


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

在if条件中使用
break
语句:

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

break
语句将中断循环。

您的意思是
break?但是break可以用在foreach中吗?我在switch/case和while中看到它,但在foreach中break有效吗?如果是这样的话,这是一个很好的编程风格吗?哇,谢谢!一直以来,我只在开关/外壳上使用它。