PHPスイッチで「OR」演算子または同等のものを使用する方法はありますか?
たとえば、次のようなもの:
switch ($value) {
case 1 || 2:
echo 'the value is either 1 or 2';
break;
}
PHPスイッチで「OR」演算子または同等のものを使用する方法はありますか?
たとえば、次のようなもの:
switch ($value) {
case 1 || 2:
echo 'the value is either 1 or 2';
break;
}
回答:
で使用する必要がある場合||
はswitch
、次のことを試すことができます。
$v = 1;
switch (true) {
case ($v == 1 || $v == 2):
echo 'the value is either 1 or 2';
break;
}
そうでなければ、あなたの好ましい解決策は
switch($v) {
case 1:
case 2:
echo "the value is either 1 or 2";
break;
}
問題は、大きなケースを処理するときに両方の方法が効率的ではないことです... これが完全に機能する1
と想像し100
てください
$r1 = range(1, 100);
$r2 = range(100, 200);
$v = 76;
switch (true) {
case in_array($v, $r1) :
echo 'the value is in range 1 to 100';
break;
case in_array($v, $r2) :
echo 'the value is in range 100 to 200';
break;
}
他の回答はすべて正しいので再投稿しませんが、「複雑な」ステートメントにスイッチを使用できないことを追加します。例:値が「3より大きい」かどうかをテストするには、「 4〜6インチなど。そのようなことをする必要がある場合は、if
ステートメントを使用するか、または特に強いニーズがある場合はswitch
、前後に使用することができます。
switch (true) {
case ($value > 3) :
// value is greater than 3
break;
case ($value >= 4 && $value <= 6) :
// value is between 4 and 6
break;
}
私が言ったように、私は個人的にif
そこで声明を使います。
switch()
作業しているときは、本当に欠けていますSelect Case
。これは、「大きなif、else if、else-if ...のブロック」。
you can't use switch for more "complicated" statements
それがあるcan't
か、それがありますかshouldn't
?あなたの例ではあなたcan
switch (true)
ものは、スイッチの通常の使用例ではありません。
この記事の次の例を試してください:http : //phpswitch.com/
可能なスイッチケース:
(私)。簡単なswitchステートメント
switchステートメントは不思議で魔法です。これは、値のさまざまなオプションを選択し、設定されている値に応じてさまざまなコードを実行できる言語の一部です。
可能な各オプションは、switchステートメントのcaseで指定されます。
例:
switch($bar)
{
case 4:
echo "This is not the number you're looking for.\n";
$foo = 92;
}
(ii)。コードブロックの区切り
スイッチの主な注意点は、breakで停止しない限り、各ケースが次のケースで実行されることです。上記の単純なケースがケース5をカバーするように拡張された場合:
例:
case 4:
echo "This is not the number you're looking for.\n";
$foo = 92;
break;
case 5:
echo "A copy of Ringworld is on its way to you!\n";
$foo = 34;
break;
(iii)。複数のケースでフォールスルーを使用する
スイッチはブレークを見つけるまでコードを実行し続けるので、フォールスルーの概念を取り入れて、複数のケースで同じコードを実行するのは簡単です。
例:
ケース2:
case 3:
case 4:
echo "This is not the number you're looking for.\n";
$foo = 92;
break;
case 5:
echo "A copy of Ringworld is on its way to you!\n";
$foo = 34;
break;
(iv)。高度な切り替え:条件ケース
PHPのスイッチでは、特定の変数の値をオンにするだけではありません。使用するケースの値が指定されている限り、任意の式をケースの1つとして使用できます。例として、スイッチを使用して記述された簡単なバリデータは次のとおりです。
例:
switch(true)
{
case (strlen($foo) > 30):
$error = "The value provided is too long.";
$valid = false;
break;
case (!preg_match('/^[A-Z0-9]+$/i', $foo)):
$error = "The value must be alphanumeric.";
$valid = false;
break;
default:
$valid = true;
break;
}
これは問題の解決に役立つと思います。
http://php.net/manual/en/control-structures.switch.php(manual)を使用することをお勧めします
switch ($your_variable)
{
case 1:
case 2:
echo "the value is either 1 or 2.";
break;
}
説明
単一のステートメントを実行する値のように、breakが見つかるまで、またはそれが見つからない限り、breakなしでコードを実行できます。breakが見つかると、switchケースから出力されます。
http://php.net/manual/en/control-structures.switch.phpの 例
$today = date("D");
switch($today){
case "Mon":
case "Tue":
echo "Today is Tuesday or Monday. Buy some food.";
break;
case "Wed":
echo "Today is Wednesday. Visit a doctor.";
break;
case "Thu":
echo "Today is Thursday. Repair your car.";
break;
default:
echo "No information available for that day.";
break;
}