我想知道是否有办法在 case 语句中评估 OR,例如:
case 0 || 3:
echo "equal to 0 or 3!";
break;
我试过|| 不久前,它似乎对我不起作用,谷歌也没有证明有帮助。
我只是想知道这一点,因为在某些情况下,案例中的 or 运算符会非常有用……
感谢您提供任何帮助。
我想知道是否有办法在 case 语句中评估 OR,例如:
case 0 || 3:
echo "equal to 0 or 3!";
break;
我试过|| 不久前,它似乎对我不起作用,谷歌也没有证明有帮助。
我只是想知道这一点,因为在某些情况下,案例中的 or 运算符会非常有用……
感谢您提供任何帮助。
你可以让案件通过。
case 0:
case 3:
echo "equal to 0 or 3!";
break;
许多风格指南不建议这样做。
当使用解析为布尔值的逻辑和比较运算符时,您可以在需要第一种情况的情况下使用switch(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 指出的那样,如果您希望将多个案例解析为同一个代码块,您可以将它们堆叠起来并让它们通过。