我遇到的情况是,在处理对象时,我通常会使用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?
答案 0 :(得分:32)
来自PHP文档:
break
结束当前for,foreach,while,do-while或switch结构的执行。
所以是的,你可以用它来摆脱foreach循环。
答案 1 :(得分:8)
在if条件中使用break
语句:
if ($small_object->TIME == $sought_time) {
break;
}
break
语句将脱离循环。