变量:
$mask = A | B | C;
我可以使用switch来测试每个常量:
switch(true){
case $mask & A:
...
case $mask & B:
...
case $mask & C:
...
}
我想知道是否有可能有一个更好的开关,如:
switch($mask){
case A:
...
case B:
...
case C:
...
}
我相信我需要以某种奇怪的〜运算符来修改变量。但是如何?
答案 0 :(得分:1)
可以按照说明构建开关
<?php
define("A", 1);
define("B", 2);
define("C", 4);
$mask = B | C;
switch(true){
case $mask & A:
echo "A";
break;
case $mask & B:
echo "B";
break;
case $mask & C:
echo "C";
break;
}
?>
但问题是开关只会触发第一个匹配条件。
因此,上面的$mask = B | C;
代码只会在您希望它回显BC
所以简而言之,如果你希望行为是它只执行第一个匹配条件,那么你可以使用它,否则你将不得不做一系列的ifs。