Вспыхните forloop, но в операторе переключения php

Когда я обычно хочу убежать из цикла foreach, прежде чем все повторения завершились, я просто использую повреждение; оператор. например.

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

Но мой следующий пример имеет оператор переключения в нем. И если одно из условий соблюдают затем, я должен повредиться от цикла foreach. (Проблема, являющаяся повреждением, используется для оператора переключения),

foreach($nodelist as $node)
{
    switch($node->nodeName) {
        case "a" :
            //do something
            break;
        case "b" :
            //break out of forloop
            break;
    }
}

Я просто устанавливаю переменную в операторе переключения, затем повреждаются после него? например.

$breakout = false;
foreach($nodelist as $node)
{
    switch($node->nodeName) {
        case "a" :
            //do something
            break;
        case "b" :
            $breakout = true;
            break;
    }
    if($breakout === true) break;
}

Действительно ли это - лучшее решение? или это там иначе?

33
задан Lizard 16 July 2010 в 16:25
поделиться

3 ответа

из руководства ( break )

break принимает необязательный числовой аргумент, который сообщает ему, из скольких вложенных включающих структур нужно разбить.

61
ответ дан 27 November 2019 в 17:51
поделиться

Просто используйте {- это предотвратит "запуск" кода. Гораздо лучше, чем заявление о прерывании, если вы спросите меня.

-1
ответ дан 27 November 2019 в 17:51
поделиться

break 2;

break x вырвется за столько-то уровней

12
ответ дан 27 November 2019 в 17:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: