switch ($foo)
{
case 3 || 5:
bar();
break;
case 2:
apple();
break;
}
上記のコードで、最初の switch ステートメントは有効ですか? bar()の値が$foo3 または 5の場合に関数を呼び出したい
switch ($foo)
{
case 3 || 5:
bar();
break;
case 2:
apple();
break;
}
上記のコードで、最初の switch ステートメントは有効ですか? bar()の値が$foo3 または 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:
りんご();
壊す;
}