switch ($foo)
{
case 3 || 5:
bar();
break;
case 2:
apple();
break;
}
上記のコードで、最初の switch ステートメントは有効ですか? bar()
の値が$foo
3 または 5の場合に関数を呼び出したい
switch ($foo)
{
case 3 || 5:
bar();
break;
case 2:
apple();
break;
}
上記のコードで、最初の switch ステートメントは有効ですか? bar()
の値が$foo
3 または 5の場合に関数を呼び出したい
switch ステートメントのフォールスルーを利用する必要があります。
switch ($foo)
{
case 3:
case 5:
bar();
break;
case 2:
apple();
break;
}
PHPのman ページには、このような例がいくつかあります。
必要なものは次のとおりだと思います。
switch ($foo)
{
case 3:
case 5:
bar();
break;
case 2:
apple();
break;
}
興味深いことに、私は Perl がこの構文を導入している (または、今までに導入しているかもしれない) と聞いたことがあります。
if ($a == 3 || 5)
私はその構文の大ファンではありません。字句パーサーをかなり書かなければならず、言語は可能な限り明確であるべきだと信じているからです。if
しかし、その後、Perl はこれらの恐ろしい末尾側の s とs を使用して、これらの種類の問題をすべて解決しているor
ので、問題はないと思います :-)
代わりに、switch
ステートメントの主な利点の 1 つを使用してください。
switch($foo) {
case 3:
case 5:
bar();
break;
case 2:
apple();
break;
}
ええ、私はあなたがそこに持っているものと同等だと思います:
<?php $foo = 5000; スイッチ( $foo ) { case true : // Gzipp: 「==」スタイルの比較が行われます echo '最初のもの'; // $foo とケースの値の間 壊す; // 「真実」である $foo の値について // これは常に取得します。 ケース 2: echo '2 つ目'; 壊す; デフォルト: 「どちらでもない」をエコーします。 壊す; } ?>
いいえ、もしあなたが書いたなら、あなたはcase 3 || 5:
ちょうどcase True:
あなたが望んでいたものではありません. ただし、 case ステートメントを互いに直接配置することはできます。
スイッチ ($foo) { ケース 3: ケース 5: バー(); 壊す; ケース 2: りんご(); 壊す; }