Switch Statement
CoddyのPHPジャーニー「基礎」セクションの一部 — レッスン 32/71。
1 つの変数を多数の特定の値と比較する必要がある場合、switch文 は長い 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 からのものであっても、下のすべてのコードを実行し続けます。
土曜日と日曜日が 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 を読み取ります。
色に基づいて適切なアクションを決定するために switch 文を使用します:
- コマンドが
redの場合、Stopを出力します - コマンドが
yellowの場合、Slow downを出力します - コマンドが
greenの場合、Goを出力します - コマンドが
flashing redまたはflashing yellowの場合、Proceed with cautionを出力します - その他の値の場合、
Invalid signalを出力します
例:
入力が green の場合、出力は次のようになります:
Go入力が flashing red の場合、出力は次のようになります:
Proceed with caution入力が blue の場合、出力は次のようになります:
Invalid signalチートシート
switch 文 は、単一の変数を複数の特定の値に対して比較する、よりクリーンな方法を提供します:
<?php
$day = "Monday";
switch ($day) {
case "Monday":
echo "Start of the week";
break;
case "Friday":
echo "Almost weekend";
break;
default:
echo "Regular day";
}
?>break 文は、一致した case を実行した後、switch から抜け出します。それがないと、PHP は次の case のコードを実行し続けます。
複数の case を積み重ねることで、同じコードを共有できます:
<?php
switch ($day) {
case "Saturday":
case "Sunday":
echo "Weekend!";
break;
}
?>default case は、他の case が一致しない場合に実行され、else 文に似ています。
1 つの変数を複数の正確な値に対して比較する場合は switch 文を使用してください。複雑な条件や範囲の場合は、代わりに if-elseif 文を使用します。
自分で試してみよう
<?php
// 入力を読み取る
$command = trim(fgets(STDIN));
// TODO: switch文を使用して下にコードを書く
// 信号機の色に基づいて適切なアクションを決定する
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators