打破forloop但在switch语句php中
Posted
技术标签:
【中文标题】打破forloop但在switch语句php中【英文标题】:Break out out forloop but within switch statement php 【发布时间】:2011-03-17 01:38:44 【问题描述】:当我通常想在所有迭代完成之前跳出 foreach 循环时,我只需使用 break;陈述。例如
foreach($nodelist as $node)
if($metCriteria)
break;
但我的下一个示例中有一个 switch 语句。如果满足其中一个条件,那么我需要从 foreach 循环中中断。 (问题是break用于switch语句)
foreach($nodelist as $node)
switch($node->nodeName)
case "a" :
//do something
break;
case "b" :
//break out of forloop
break;
我是否只是在 switch 语句中设置一个变量然后在它之后中断?例如
$breakout = false;
foreach($nodelist as $node)
switch($node->nodeName)
case "a" :
//do something
break;
case "b" :
$breakout = true;
break;
if($breakout === true) break;
这是最好的解决方案吗?还是有其他方法?
【问题讨论】:
【参考方案1】:来自手册 (break)
break 接受一个可选的数字参数,告诉它有多少嵌套的封闭结构要被打破。
【讨论】:
+1 这正是我所需要的。使用内置语言结构的奖励积分 - 到目前为止我一直在使用@Lizard 风格。 5.4.0 移除了将变量(例如,$num = 2; break $num;)作为数值参数传递的功能。【参考方案2】:接受的答案没有实际的例子让我分享给你。
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;
【讨论】:
【参考方案3】:休息2;
break x 会突破那么多关卡
【讨论】:
【参考方案4】:只需使用 's - 它会阻止代码“运行”。如果你问我的话,比 break-statement 要好得多。
【讨论】:
以上是关于打破forloop但在switch语句php中的主要内容,如果未能解决你的问题,请参考以下文章