Php 一旦条件满足,如何冲出困境?
在处理对象时,我通常使用foreach循环遍历对象,如下所示: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 ($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有效吗?如果是这样的话,这是一个很好的编程风格吗?哇,谢谢!一直以来,我只在开关/外壳上使用它。