次のようなcaseステートメントでORを評価する方法があるかどうか疑問に思いました。
case 0 || 3:
echo "equal to 0 or 3!";
break;
試しました|| 少し前に、それは私にとってはうまくいかなかったようで、グーグルは役に立たなかった。
ケース内のまたは演算子が非常に役立つ状況がいくつかあったので、私はこれについて疑問に思っています...
どんな助けもいただければ幸いです。
次のようなcaseステートメントでORを評価する方法があるかどうか疑問に思いました。
case 0 || 3:
echo "equal to 0 or 3!";
break;
試しました|| 少し前に、それは私にとってはうまくいかなかったようで、グーグルは役に立たなかった。
ケース内のまたは演算子が非常に役立つ状況がいくつかあったので、私はこれについて疑問に思っています...
どんな助けもいただければ幸いです。
ケースを通過させることができます。
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が指摘しているように、複数のケースを同じコードブロックに解決したい場合は、それらをスタックしてフォールスルーさせることができます。