【PHP入門】switch文を使った条件分岐の書き方を解説【初心者向け】

  • PR
  • プログラミング
【PHP入門】switch文を使った条件分岐の書き方を解説【初心者向け】

この記事ではプログラミング言語「PHP」におけるswitch文の書き方を詳しく解説します。この記事の内容は次の方におすすめできます。



▼この記事がおすすめの人

  • switch文の意味や考え方について理解したい
  • switch文の構造やコードの書き方について知りたい
  • コピペで使えるサンプルコードがあれば確認したい
if文と合わせて覚えおきたい条件分岐の文法です。初心者はぜひチェックして下さいね!!

▼この記事を書いたひと

フリーランスみやしも(@miyashimo_blog)です。プログラミングやWebサイト制作に関するITの情報を幅広くお届けしていきます。

switch文の概要や基本構造を解説

まずはswitch文の意味や構造といった基本的な情報からお伝えします。

switch文の概要

今回解説するswitch文は変数の値に基づいて条件分岐を行うプログラミングの文法です。



プログラミングでは条件に合わせてプログラム上の処理を分けることを「条件分岐」と言います。条件分岐にはif文が代表的ですが、中でもswitch文は固定値を比較したり、1つの変数の値に基づく条件分岐に特に適した文法です。

PHPの条件分岐はif文とswitch文の両方の特性を理解して、目的にあわせて使い分けることが大切です。引き続きswitch文の情報を確認していきましょう。

switch文と同じ条件分岐のif文に関する情報は「PHPのif文の書き方」から確認できます。

switch文の基本構造

PHPのswitch文は次の構造に従って書くことができます。



▼switch文の構造

switch (式) {
  case 値1:
    // 値1に該当する場合の処理
    break;
  case 値2:
    // 値2に該当する場合の処理
    break;
  default:
    // どのケースにも該当しない場合の処理
}



switch文ではswitch()の中に評価する式を書き、case 値:以下に値に一致した場合の処理を書きます。case文は比較したい値に合わせて幾つでも追加できます。



break」は該当するcase文の処理が終わった後に、switch文を抜けるために使います。breakを書かないと以降のcase文も続けて実行されます。多くの場合は各case文にbreakを付けますが、意図的に省略することで複数のcase文に同じ処理を実行させることもできます。この制御方法のことはフォールスルーと呼びます。



default」にはどのcase文にも該当しなかった場合の処理を書くことができます。defaultはどの位置にも置くことができますが、通常はswitch文の最後に記述します。

switch文の使い方・コードの書き方

ここからはswitch文を使った基本的なコードの書き方を解説していきます。

基本的なswitch文の使い方

まずは基本的なswitch文の使い方を確認しましょう。以下は変数の値によって異なるメッセージを出力するシンプルな条件分岐のコードです。



▼サンプルコード

<?php
$fruit = "apple";

switch ($fruit) {
  case "apple":
    echo "リンゴです。";  // この処理が実行される
    break;
  case "banana":
    echo "バナナです。";
    break;
  case "orange":
    echo "オレンジです。";
    break;
  default:
    echo "不明な果物です。";
}
?>



上記の例では変数$fruit"apple"に一致するため実行すると「リンゴです。」が表示されます。メッセージを出力するechoの次にbreakがあるので、一致したcase以降のcaseブロックは実行されません。

case文でdefaultを使う

switch文では「default」を指定することでどのcaseにも一致しない場合に実行される処理を定義できます。以下はdefaultを使ったswitch文の例です。



▼サンプルコード

<?php
$day = "Monday";

switch ($day) {
  case "Saturday":
    echo "今日は土曜日です。";
    break;
  case "Sunday":
    echo "今日は日曜日です。";
    break;
  default:
    echo "平日です。";  // この処理が実行される
}
?>



上記の例では$dayが"Saturday"や"Sunday"には一致しないため、最後のdefaultコードブロックが適用されて"平日です。"が表示されます。

意図的にbreakを省略する

switch文では各caseブロックにbreakを記述するのが一般的ですが、意図的にbreakを省略することで複数のケースに同じ処理を実行させることができます。



▼サンプルコード

<?php
$grade = "B";

switch ($grade) {
  case "A":
  case "B":
    echo "合格です。";  // ここが実行される
    break;
  case "C":
    echo "再試験です。";
    break;
  default:
    echo "不合格です。";
}
?>



上記の例では"A"もしくは"B"に一致した場合に同じ処理が実行されます。この様に複数の値に共通の処理をまとめたswitch文の使い方のことを「フォールスルー」と呼びます。

switch文の活用ポイント

このほかPHPのswitch文を使ってコードを書く上でのポイントをいくつか解説します。

if文とswitch文の使い分け

PHPの条件分岐にはif文とswitch文があることを伝えしましたが、それぞれ次の様に使い分けることができます。



▼使い分け

  • if文: 複雑な条件を扱ったり、複雑な条件で条件分岐する場合。条件が数値や文字列の固定値でない場合。
  • switch文: 1つの変数に複数の固定値をチェックする場合。あるいは多くの選択肢がある場合。



if文とswitch文では基本的にif文の方が構造がシンプルなので分かりやすく、また複雑な条件にも柔軟に対応しやすいです。

使いどころでどちらか迷う場合は、まずはif文でコードを書いてみて、そこからswitch文を使った方が有効かを検討すると良いでしょう。

公式リファレンスを活用しよう

今回はswitch文を初心者向けに説明していますが、より厳密な仕様や挙動について知りたい方はPHPの公式リファレンスを活用しましょう。リファレンスは”マニュアル”と同じ意味あいで使われるプログラミング用語です。



▼PHP公式サイト

PHP:言語リファレンス

PHPのプログラミングでは上記の公式リファレンスが非常に役立ちます。PHPを始めたばかりで利用したことが無いという方も、ひとまずブックマークしておくのが推奨です。

この記事のまとめ

この記事ではプログラミング言語「PHP」ににおけるswitch文の書き方ついて詳しく解説しました。



いずれもPHPを使った各種プログラミングの目的でご活用いただきたい情報です。



このほか当ブログではプログラミングで役立つ情報を多数掲載しています。あわせてご活用くださいませ。



▼関連記事を探す

プログラミングの記事一覧

今回は以上となります。最後までお読みいただき、ありがとうございました!