【作って納得!PHP入門】switch文を使ってみよう(条件分岐)

PHP

PHPのswitch文を使ってみよう

前回はif – else文について記載しました。
今回も条件分岐について見ていきます。

今回はPHPのプログラムでswitch文を使ってみます。

最初にswitch文についての説明をします。
その後に、実際に簡単なプログラムを作成して、switch文について学んでいきます。

この記事の目標(作るもの)について

switch文を使用した簡単なプログラムを作成し、下記のように画面に結果を出力して確認します。

PHPのswitch文とは?

PHPのswitch文も他の言語と同じように、条件分岐するために使用します。
switch文に単一の変数を渡して、caseで条件分岐します。

下記のように、変数を渡して、それぞれのcaseで分岐します。

switch(変数) {
    case ケース1:
        echo "何らかの処理1";
        break;
    case ケース2:
        echo "何らかの処理2";
        break;
    case ケース3:
        echo "何らかの処理3";
        break;
    default:
        echo "どれにも当てはまらない場合";
}

switchを抜ける場合はbreakが必要で、breakがない場合は下に処理が続いていきます。
breakがない場合を考えてみると、例で言うと、ケース1の条件に合致した場合に、“何らかの処理1”,”何らかの処理2″…と後続処理も行われて、続けて出力されていきます。

defaultを書くこともできて、default文は、どのcaseにも一致しない場合に処理されます。

PHPでswitch文を使ってみよう

実際にswitch文を使用して、処理を書いてみましょう。
前回作成したcodelike_web_dockerの配下に、switch_sweets.phpという名前で下記の内容で保存します。

<?php

echo "switch test1<br />";

$sweets = "cookie";
switch ($sweets) {
    case "chocolate":
    echo "チョコレートです。"."<br />";
        break;
    case "cookie":
    echo "クッキーです。"."<br />";
        break;
    case "candy":
    echo "キャンディです。"."<br />";
        break;
}

echo "<br />switch test2<br />";

$sweets = "apple";
switch ($sweets) {
    case "chocolate":
    echo "チョコレートです。"."<br />";
        break;
    case "cookie":
    echo "クッキーです。"."<br />";
        break;
    case "candy":
    echo "キャンディです。"."<br />";
        break;
    default:
    echo "お菓子ではないです。"."<br />";
        break;
}

echo "<br />switch test3<br />";

$sweets = "candy";
switch ($sweets) {
    case "chocolate":
    case "cookie":
    case "candy":
    echo "お菓子です。"."<br />";
        break;
    default:
    echo "お菓子ではないです。"."<br />";
        break;
}

解説

コードの説明です。
$sweetsという変数を用意して、それぞれswitch文にかけて動作を確認できるものを作成しました。

caseの確認箇所

最初は、$sweetsには“cookie”を格納しています。
case文として、“chocolate”,”cookie”,”candy”を用意しています。
2番目の“cookie”のケースに合致するため、ここでは“クッキーです。”が出力されて処理が終わります。

defaultの確認箇所

次は、$sweets“apple”を格納しています。
同じようにケースを用意していますが、ここではdefaultの項目を追加しています。

// ----- 省略 -----
   default:
    echo "お菓子ではないです。"."<br />";
        break;
}

ここでは、$sweetsの値がどのケースにも属さないため、“お菓子ではないです。”が出力されます。

複数caseの確認箇所

次は、$sweets“candy”を格納しています。
ここでは、3つのそれぞれのケースをまとめてみました。

$sweetsの値は“candy”なので“お菓子です。”が出力されて処理が終わります。
breakがない場合は、処理が下に処理が続いていくので、“chocolate”,”cookie”,”candy”のどれでも“お菓子です。”になります。

動作確認

想定通りの結果が出力されているか確認してみましょう。前回作成した環境を立ち上げます。
switch_sweets.phpの編集が終わったら、保存して下記にアクセスします。

http://localhost:8080/switch_sweets.php

想定した結果が返ってきました!

おわりに

今回はswitch文を見ていきました。
単純なif文を沢山書くような場合は、switch文を使用した方が、すっきり書くことができるので積極的に使っていきましょう。

参考

公式ドキュメント – switch
PHP: switch - Manual

コメント

タイトルとURLをコピーしました