【发布时间】:2013-07-23 02:57:26
【问题描述】:
变量:
$mask = A | B | C;
我可以像这样使用 switch 来测试每个常量:
switch(true){
case $mask & A:
...
case $mask & B:
...
case $mask & C:
...
}
我想知道是否有可能有一个更好的开关,例如:
switch($mask){
case A:
...
case B:
...
case C:
...
}
我相信我需要用奇怪的 ~ 运算符来修改变量。但是怎么做?
【问题讨论】:
-
这个你被 if/ifelses 卡住了 :(
-
加上一个开关,它只会匹配一个条件......掩码通常定义多个条件。
-
实际上它会工作,但开关会在第一场比赛后转储。
-
Switch 是实现位掩码计算的错误选择,除非每个都存在级联依赖性。请参阅stackoverflow.com/a/5319489/258674 应该如何完成。
标签: php switch-statement mask