PHP案例中的OR运算符

时间:2012-04-26 03:46:33

标签: php switch-statement case

我想知道是否有办法在案例陈述中评估OR,例如:

case 0 || 3:
    echo "equal to 0 or 3!";
    break;

我试过了||不久之后它似乎对我不起作用,谷歌并没有证明是有帮助的 我只是想知道这个,因为有一些情况下,案件中的一个或一个操作员会非常有用......
任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:7)

你可以让案件失败。

case 0:
case 3:
   echo "equal to 0 or 3!";
   break;

许多风格指南不建议这样做。

答案 1 :(得分:1)

使用解析为布尔值的逻辑和比较运算符时,可以使用switch(true)或实际上,任何“true”值,因为switch检查不严格)在您想要第一个true案例的情况下。

switch(true){
    case ($foo >= 0):
        break;
    case ($bar <= 0):
        break;
    case ($baz == 0):
        break;
    case ($foo > $bar && $bar < $baz):
        break;
    default:
        break;
}

然而,有些语法替代方案可能更具可读性或提供更多控制。

正如@alex指出的那样,如果您希望将多个案例解析为相同的代码块,您可以将它们堆叠起来并让它们落实。