Switch文
CoddyのPHPジャーニー「基礎」セクションの一部。レッスン 32/71。
1つの変数を複数の特定の値と比較する必要がある場合、switch statementは長いif-elseifチェーンに代わる、よりすっきりした方法です。
switch文は変数を一度確認し、その後、異なるcaseの値と照合します。
<?php
$day = "Monday";
switch ($day) {
case "Monday":
echo "Start of the week";
break;
case "Friday":
echo "Almost weekend";
break;
case "Saturday":
case "Sunday":
echo "Weekend!";
break;
default:
echo "Regular day";
}
?>PHP は $day を各 case と比較します。一致するものを見つけると、そのブロックのコードを実行します。
break文は非常に重要です。該当するcaseを実行した後、PHPにswitchを終了するよう指示します。これがないと、PHPは他のcaseも含め、以下にあるすべてのコードを実行し続けてしまいます。
Saturday と Sunday が case をまとめて記述することで、同じコードを共有していることに注目してください。default case は else のように機能します。他の case に一致しない場合に実行されます。
<?php
$grade = "B";
switch ($grade) {
case "A":
echo "Excellent!";
break;
case "B":
echo "Good job!";
break;
default:
echo "Keep trying!";
}
?>1つの変数を複数の正確な値と比較するときは switch を使用します。複雑な条件や範囲の場合は、if-elseif 文を使用してください。
チャレンジ
簡単交通信号の色を表す文字列 command を入力から読み取ります。
色に基づいて適切な action を Determine するには、switch statement を使用します。
- command が
redの場合、Stopを出力します - command が
yellowの場合、Slow downを出力します - command が
greenの場合、Goを出力します - command が
flashing redまたはflashing yellowの場合、Proceed with cautionを出力します - その他の値の場合、
Invalid signalを出力します
例:
入力が green の場合、出力は次のようになります:
Go入力が flashing red の場合、出力は次のようになります:
Proceed with caution入力が blue の場合、出力は次のようになります:
Invalid signal自分で試してみよう
<?php
// 入力を読み取る
$command = trim(fgets(STDIN));
// TODO: switch文を使って以下にコードを書いてください
// 信号機の色に基づいて適切なアクションを決定する
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: PHPオンラインコンパイラ