【PHP入門】switch文を使った条件分岐の書き方を解説【初心者向け】
この記事ではプログラミング言語「PHP」におけるswitch文の書き方を詳しく解説します。この記事の内容は次の方におすすめできます。
▼この記事がおすすめの人
- switch文の意味や考え方について理解したい
- switch文の構造やコードの書き方について知りたい
- コピペで使えるサンプルコードがあれば確認したい
▼この記事を書いたひと
フリーランスみやしも(@miyashimo_blog)です。プログラミングやWebサイト制作に関するITの情報を幅広くお届けしていきます。
switch文の概要や基本構造を解説
まずはswitch文の意味や構造といった基本的な情報からお伝えします。
switch文の概要
今回解説するswitch文は変数の値に基づいて条件分岐を行うプログラミングの文法です。
プログラミングでは条件に合わせてプログラム上の処理を分けることを「条件分岐」と言います。条件分岐にはif文が代表的ですが、中でもswitch文は固定値を比較したり、1つの変数の値に基づく条件分岐に特に適した文法です。
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文の方が構造がシンプルなので分かりやすく、また複雑な条件にも柔軟に対応しやすいです。
公式リファレンスを活用しよう
今回はswitch文を初心者向けに説明していますが、より厳密な仕様や挙動について知りたい方はPHPの公式リファレンスを活用しましょう。リファレンスは”マニュアル”と同じ意味あいで使われるプログラミング用語です。
▼PHP公式サイト
この記事のまとめ
この記事ではプログラミング言語「PHP」ににおけるswitch文の書き方ついて詳しく解説しました。
いずれもPHPを使った各種プログラミングの目的でご活用いただきたい情報です。
このほか当ブログではプログラミングで役立つ情報を多数掲載しています。あわせてご活用くださいませ。
▼関連記事を探す