我正在尝试进行大量按位测试,确切地说是 32 个,其中可能有多个匹配项。我能想到的唯一可行的方法是使用一长串 if 语句,例如
$test = 3;
if(($test & 1) == 1) {
do something...
}
if(($test & 2) == 2) {
do something else...
}
我正在考虑减少代码的另一种可能性,虽然可能不是很多,但可能是 switch 语句。也就是说,我什至不确定我的想法是否会奏效:
$test = 3;
switch($test) {
case ((1 & $test) == 1):
do something...
break;
case ((2 & $test) == 2):
//Will this run?
do something else...
break;
}
会break
结束开关吗?或者切换是否会继续,并且每个案例都会运行按位运算返回 true?
我问是因为我的实际程序将有 32 个不同的测试,我不想写所有 32 个只是为了发现它不起作用而 Google 没有在这方面提供任何信息。
如果这不起作用,是否有解决方案可以解决,还是我被降级为大量 if 语句?