【PHP】switch文の基本ガイド:書き方や使用例を解説

PHPにおける条件分岐にはifやelseなどの構文がよく使われますが、複数の値に対して同じ変数をチェックする場合にはswitch文が便利です。この記事では、PHPのswitch文について詳しく見ていきます。

switch文の基本構文

switch文は、特定の変数の値に基づいて実行するコードブロックを決定します。以下が基本的な構文です。

switch (変数) {
    case 値1:
        // 処理1
        break;
    case 値2:
        // 処理2
        break;
    // caseはいくつでも追加可能
    default:
        // どのcaseにも一致しない場合の処理
        break;
}

流れのフローチャートは以下のようになります。

switch文の具体例

例えば、ユーザーが選択した曜日に応じてメッセージを表示するスクリプトを考えてみましょう。

$day = "月曜日";

switch ($day) {
    case "月曜日":
        echo "今日は月曜日です。";
        break;
    case "火曜日":
        echo "今日は火曜日です。";
        break;
    case "水曜日":
        echo "今日は水曜日です。";
        break;
    default:
        echo "不明な曜日です。";
        break;
}

このスクリプトでは、$day変数の値に応じて、異なるメッセージが表示されます。defaultは、どのcaseにも一致しなかった場合の処理を定義します。

break文の重要性

switch文で重要なのがbreak文です。break文を使わないと、条件が一致した後も次のcaseが実行されてしまう「フォールスルー」という現象が発生します。

$day = "火曜日";

switch ($day) {
    case "月曜日":
        echo "今日は月曜日です。";
    case "火曜日":
        echo "今日は火曜日です。";
    case "水曜日":
        echo "今日は水曜日です。";
    default:
        echo "不明な曜日です。";
}

上記の例では、break文がないため、火曜日のケースに一致した後、すべてのケースが実行されてしまいます。

出力

今日は火曜日です。今日は水曜日です。不明な曜日です。

これを防ぐために、各caseの最後にbreak文を忘れずに追加しましょう。

switch文の活用法

switch文は、複数の選択肢がある場合にコードを読みやすく整理するのに非常に役立ちます。たとえば、数値範囲や文字列の一致をチェックする際に、複数のif-else文よりもコンパクトにまとめることができます。

$grade = "B";

switch ($grade) {
    case "A":
        echo "優秀です!";
        break;
    case "B":
        echo "よくできました!";
        break;
    case "C":
        echo "合格です。";
        break;
    default:
        echo "再試験が必要です。";
        break;
}

まとめ

switch文は、条件分岐を効率的に行うための非常に便利な構文です。特に、特定の変数が複数の値のいずれかに一致する場合に、コードをシンプルかつ読みやすく保つのに役立ちます。ぜひ実際の開発に活用してみてください。

コメント