私は、複数の一致が存在する可能性がある、正確には 32 という多数のビット単位のテストを実行しようとしています。私が考えることができる唯一の方法は、ifステートメントの長いリスト全体を使用することです。
$test = 3;
if(($test & 1) == 1) {
do something...
}
if(($test & 2) == 2) {
do something else...
}
コードを削減するために私が考えていたもう 1 つの可能性は、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 の異なるテストがあり、それが機能せず、Google がこれについて何も明らかにしていないことを見つけるためだけに 32 のすべてを書きたくないので、質問します。
これが機能しない場合、解決策はありますか、それとも多数の if ステートメントに追いやられていますか?