Php 中断forloop,但在switch语句内

Php 中断forloop,但在switch语句内,php,switch-statement,break,for-loop,Php,Switch Statement,Break,For Loop,当我通常想在所有迭代完成之前打破foreach循环时,我只需要使用break;陈述e、 g foreach($nodelist as $node) { if($metCriteria) { break; } } 但我的下一个示例中有一个switch语句。如果满足其中一个条件,那么我需要从foreach循环中断。(问题是break用于switch语句) 我是否只需在switch语句中设置一个变量,然后在其后中断?e、 g. $breakout = false; fore

当我通常想在所有迭代完成之前打破foreach循环时,我只需要使用break;陈述e、 g

foreach($nodelist as $node) {
   if($metCriteria) {
       break;
   }
}
但我的下一个示例中有一个switch语句。如果满足其中一个条件,那么我需要从foreach循环中断。(问题是break用于switch语句)

我是否只需在switch语句中设置一个变量,然后在其后中断?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;
}
这是最好的解决方案吗?或者这是另一种方式?

break 2

中断x将中断手册中的许多级别(

break接受一个可选的数值参数,该参数告诉它要从中拆分出多少嵌套的封闭结构


只需使用{,它将防止代码“运行”。如果你问我的话,比break语句要好得多

公认的答案没有实际的例子,让我与大家分享

表示从回路和开关退出

$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "At 5<br />\n";
        break 1;  /* Exit only the switch. */
    case 10:
        echo "At 10; quitting<br />\n";
        break 2;  /* Exit the switch and the while. */
    default:
        break;
    }
}
$i=0;
while(++$i){
交换机(一美元){
案例5:
回声“在5时
\n”; 断开1;/*仅退出开关*/ 案例10: 回声“在10;退出
\n”; 断开2;/*退出开关,同时退出*/ 违约: 打破 } }
+1这正是我所需要的。使用内置语言构造的额外好处-我一直在使用@Lizard样式。5.4.0取消了将变量(例如,$num=2;break$num;)作为数字参数传递的功能。
break 2 
$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "At 5<br />\n";
        break 1;  /* Exit only the switch. */
    case 10:
        echo "At 10; quitting<br />\n";
        break 2;  /* Exit the switch and the while. */
    default:
        break;
    }
}