When I normally want to break out of a foreach loop before all of the iterations have completed I simply use a break; statement. e.g.
foreach($nodelist as $node) { if($metCriteria) { break; } }
But my next example has a switch statement in it. And if one of the conditions are met then I need to break from the foreach loop. (The problem being the break is used for the switch statement)
foreach($nodelist as $node) { switch($node->nodeName) { case "a" : //do something break; case "b" : //break out of forloop break; } }
Do I simply set a variable in the switch statement then break after it? e.g.
$breakout = false; foreach($nodelist as $node) { switch($node->nodeName) { case "a" : //do something break; case "b" : $breakout = true; break; } if($breakout === true) break; }
Is this the best solution? or this there another way?
You can use the break statement to end processing of a particular labeled statement within the switch statement. It branches to the end of the switch statement. Without break , the program continues to the next labeled statement, executing the statements until a break or the end of the statement is reached.
Using break keyword: The break keyword is used to immediately terminate the loop and the program control resumes at the next statement following the loop. To terminate the control from any loop we need to use break keyword.
from the manual (break)
break accepts an optional numeric argument which tells it how many nested enclosing structures are to be broken out of.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With