php switch continue 什么意思??
怪我咯
怪我咯 2017-04-10 17:35:56
[PHP讨论组]

注意和其它语言不同,continue 语句作用到 switch 上的作用类似于 break。如果在循环中有一个 switch 并希望 continue 到外层循环中的下一轮循环,用 continue 2。

这句话什么意思??
这里 有什么不一样? 跟c++ java???

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(2)
大家讲道理

不同点在于 PHPcontinue 后面可以加一个数字 n,代表跳出到外层第n重循环,默认 continue 表示放弃这次循环(即相当于 continue 1,跳出到外层第一重循环),但是注意,当n> 外层的循环数时,将会报错。这样你也理解,为什么 switch 里面直接 continue的话,就是 break

for($i=0;$i<3;$i++){
    for($j=0;$j<3;$j++){
        switch ($j) {
            case 1:
                continue 3; // 当$j=1时,跳出到外层第三重循环($i)继续执行
                break;
            default:
                echo $j;
                break;
        }
    }
}
// 最终输出是 000
for($j=0;$j<3;$j++){
    switch ($j) {
        case 1:
            continue 2; // 当$j=1时,跳出到外层第二重循环($j)继续执行
            break;
        default:
            echo $j;
            break;
    }
}
// 最终输出是 02
 $j=1;
 switch ($j) {
    case 1:
        continue; // 跳出switch,写成continue 1也可以,若写成continue 2将会报错
        break;
    default:
        echo $j;
        break;
}
// 没有输出
for($j=0;$j<3;$j++){
    switch ($j) {
        case 1:
            continue 3; // 当$j=1时,将会报错,因为外层只有两层循环
            break;
        default:
            echo $j;
            break;
    }
}
// 会在输出一个0后报错, PHP Fatal error:  Cannot break/continue 3 levels in xxxx
大家讲道理

举个例子:

<?php
$foo = 'bar';
$bar = true;

switch($foo)
{
    case 'bar':
        if($bar)
        {
            continue;
        }
        echo '$bar is false';
        break;

    case 'bar':
    case 'foo':
        echo '$bar is true, or $foo is foo';
        break;
    
    default:
        echo "You shouldnt ever get here";
        break;
}

可以看到,$foo的值是bar,那么到了switch里,你可能会想,这个结果应该是输出$bar is false。但是其实并不是,这个例子什么都不会输出。因为if里面用了continue,这里的continue就相当于break,将整个流程跳出switch,不再执行下面的switch中的语句。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号