继续 2 并中断开关语句

2022-08-30 11:53:11

我是PHP的新手,在网上看到了下面的代码。它有并在声明中共同。这是什么意思?continue 2breakswitch/case

foreach ( $elements as &$element ) {

    switch ($element['type']) {
        case a :
            if (condition1)
                continue 2; 
            break;

        case b :
            if (condition2)
                continue 2;
            break;
    }

    // remaining code here, inside loop but outside switch statement
}

答案 1

将直接跳到结构的下一个迭代,该迭代是两级后面的,即 .(等效于 )只是结束语句。continue 2foreachbreakbreak 1switch

您显示的代码中的行为是:

遍历 。如果 is 类型为“a”并且得到满足,或者如果它是类型“b”并且得到满足,请跳到下一个 。否则,请先执行一些操作,然后再转到下一个 .$elements$elementcondition1condition2$element$element


来自 PHP.net:继续

continue 接受一个可选的数字参数,该参数告诉它应该跳到末尾多少层的封闭循环。默认值为 1,因此将跳到当前循环的末尾。

来自 PHP.net:switch

PHP 继续执行这些语句,直到开关块结束,或者第一次看到中断语句。

如果循环中有一个开关,并希望继续到外部循环的下一个迭代,请使用 continue 2。


答案 2

continue 接受一个可选的数字参数,该参数告诉它应该跳到末尾多少层的封闭循环。默认值为 1,因此将跳到当前循环的末尾。

资料来源:http://php.net/manual/en/control-structures.continue.php


推荐