2012-04-26 10 views
0

case文でORを評価する方法があります場合、私は、次のような、不思議でした。私が試した
またはオペレータ

case 0 || 3: 
    echo "equal to 0 or 3!"; 
    break; 

||ちょっと戻って、それは私のために働くようには見えなかったし、Googleが役に立ったと証明しなかった。
ケース内のオペレータが非常に便利だったいくつかの状況があったので、私はちょうどこれについて疑問に思っています...
助けていただければ幸いです。

答えて

1

あなたが最初にしたい状況で、あなたは(本当にまたはswitchをチェックする非厳密に起因する任意の値「true」、)switch(true)を使用することができますtrueケース。

switch(true){ 
    case ($foo >= 0): 
     break; 
    case ($bar <= 0): 
     break; 
    case ($baz == 0): 
     break; 
    case ($foo > $bar && $bar < $baz): 
     break; 
    default: 
     break; 
} 

ただし、読みやすいと判明したり、より制御しやすい構文上の選択肢があります。

@alexは、複数のケースが同じコードブロックに解決されることを望んでいる場合は、それらをスタックしてフォールスルーすることができます。

6

ケースが転倒する可能性があります。

case 0: 
case 3: 
    echo "equal to 0 or 3!"; 
    break; 

多くのスタイルガイドではこれをお勧めしません。ブール値に解決論理演算子および比較演算子で作業する場合

+1

多くのスタイルガイドが間違っています。しかし、一般的にフォールススルーを利用することで、物事をもっと難しくすることができます。 2つのケースの間に何か(休憩なし)があれば、今悔い改めましょう。 :) – cHao

関連する問題