使用PHP switch语句执行多个case [英] Executing multiple case using PHP switch statement

查看:58
本文介绍了使用PHP switch语句执行多个case的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

例如,我必须根据一个值执行多组指令.

$value = 'AA';开关($值){案例'AA':echo "值等于 1";继续;案例'BB':echo "值等于 2";继续;案例'CC' ||'AA':echo "值等于 3";休息;}

我对上面代码的期望是它应该根据传递的值执行多个案例,变量 $value 包含 AA 作为值,因此我希望它同时执行

case 'AA'
case 'CC' ||'AA'

所以它应该打印出 value equals 1 value equals 3 但是它不会以这种方式执行它我只得到 value equals 1 作为输出.如果我从语句中删除 continue 它将执行所有三个 cases 这在逻辑上是错误的.PHP 的 switch 语句是否支持基于单个值执行多种情况?有什么解决方法吗?

谢谢...

解决方案

当缺少 break 时,switch 语句会导致进入下一个条件:

$value = 'AA';开关($值){案例'AA':echo "值等于 1";//这种情况没有中断,启用失败案例'CC':echo "值等于 3";//这个对 AA 和 CC 都执行休息;案例'BB':echo "值等于 2";休息;}

I have to execute multiple set of instructions based upon a value, for example.

$value = 'AA';
switch ($value) {
    case 'AA':
        echo "value equals  1";
    continue;
    case 'BB':
        echo "value equals 2";
    continue;
    case 'CC' || 'AA':
        echo "value equals 3";
    break;
}

What i am expecting from the above code is it should execute multiple cases based upon the values passed, the variable $value contains AA as the value so hence i am expecting it to execute both

case 'AA' and
case 'CC' || 'AA'

so it should print out value equals 1 value equals 3 however it does not execute it that way i am getting only value equals 1 as output. and if i remove continue from the statement it executes all three cases which is logically wrong. does the PHP's switch statement support multiple cases to be executed based on a single value? is there any workaround for this?

thank you..

解决方案

When a break is missing then a switch statement enables falling through to the next condition:

$value = 'AA';
switch ($value) {
    case 'AA':
        echo "value equals  1"; // this case has no break, enables fallthrough
    case 'CC':
        echo "value equals 3"; // this one executes for both AA and CC
    break;
    case 'BB':
        echo "value equals 2";
    break;
}

这篇关于使用PHP switch语句执行多个case的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆