簡體   English   中英

突破forloop但在switch語句php中

[英]Break out out forloop but within switch statement php

當我通常想要在所有迭代完成之前突破foreach循環時,我只是使用中斷; 聲明。 例如

foreach($nodelist as $node) {
   if($metCriteria) {
       break;
   }
}

但我的下一個例子中有一個switch語句。 如果滿足其中一個條件,那么我需要打破foreach循環。 (中斷的問題用於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;
}

這是最好的解決方案嗎? 還是這有另一種方式?

從手冊( 休息

break接受一個可選的數字參數,告訴它有多少嵌套的封閉結構被打破。

休息2;

break x將突破那么多級別

接受的答案沒有實際的例子讓我與你分享。

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;
    }
}

只需使用{'s - 它將使代碼保持“運行”狀態。 如果你問我,要比破損聲明好多了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM