PHP switch文の使い方

この記事のポイント

PHPにおけるswitch文について学ぶことで、効率的な条件分岐処理が可能になります。

  • 複数の条件を簡潔に記述できる制御構文の基本的な書き方と動作原理
  • if文との使い分けやbreak文の重要性など実装時に注意すべき構文規則
  • 実際の開発現場で活用できる曜日判定や成績評価などの具体的なコード例

以下で詳しく解説していきますので、一緒に学習を進めていきましょう。

目次

switch文とは?

switch文は、一つの変数や式の値に基づいて複数の処理パターンから適切な処理を選択する制御構文です。

複数のif-elseif文を使って同じ変数を何度も比較する場合に比べて、コードの可読性を向上させ、多分岐の処理において効率的なコードを書くことができます。指定した値と各caseの値を比較し、一致した場合にそのcase以降の処理を実行します。break文を使用することで特定のcase処理のみを実行でき、break文がない場合は次のcaseも続けて実行される特徴があります。デフォルト処理を指定するdefault文も用意されており、どのcaseにも一致しない場合の処理を定義できます。

【関連】
PHPをもっと詳しく学ぶならpaizaラーニング

基本構文

switch文の基本的な書き方は、switch文に続いて括弧内に判定したい変数を指定し、波括弧内に複数のcase文とdefault文を記述します。

各case文では特定の値との比較を行い、一致した場合にその後の処理を実行します。処理の最後にはbreak文を記述することで、他のcaseへの実行を防ぐことができます。以下に基本的な構文例を示します。

<?php $animal = "イヌ"; switch ($animal) { case "イヌ": echo "ワンワン"; break; case "ネコ": echo "ニャーニャー"; break; default: echo "不明な動物です"; } ?>

出力結果

ワンワン
<?php $number = 2; switch ($number) { case 1: echo "ライオン"; break; case 2: echo "ゾウ"; break; case 3: echo "キリン"; break; default: echo "その他の動物"; } ?>

出力結果

ゾウ

実用例

ここでは、switch文の実用的な使用例を複数のサンプルコードで紹介します。

日常的なプログラミングでよく使われる曜日の判定、成績評価、季節の判定など、さまざまな場面でのswitch文の活用方法を学ぶことができます。各例では動物をテーマにした出力を使用し、理解しやすい形で実装方法を説明します。これらのサンプルコードを参考にして、実際の開発現場でswitch文を効果的に活用してください。

曜日判定

曜日を数値で受け取り、対応する動物の鳴き声を出力する例です。日曜日を0、月曜日を1として7つの曜日を判定し、それぞれ異なる動物の鳴き声を表示します。実際のWebアプリケーションでは曜日に応じた処理を分岐させる際に活用できます。

<?php $day_of_week = 3; switch ($day_of_week) { case 0: echo "日曜日:ライオンがガオー"; break; case 3: echo "水曜日:カエルがケロケロ"; break; default: echo "その他の曜日:トリがピヨピヨ"; } ?>

出力結果

水曜日:カエルがケロケロ

成績評価

学生の成績を文字で受け取り、対応する動物で評価レベルを表現する例です。「A」「B」「C」「どれにも該当しない」の4段階評価に対して、それぞれ異なる動物を割り当てて成績の意味を分かりやすく表示します。教育システムや成績管理アプリケーションで活用できます。

<?php $grade = "A"; switch ($grade) { case "A": echo "優秀:ワシが高く舞う"; break; case "B": echo "良好:ウマが駆け抜ける"; break; case "C": echo "普通:ウサギがぴょんぴょん"; break; default: echo "要努力:カメがゆっくり歩く"; } ?>

出力結果

優秀:ワシが高く舞う

季節判定

月の数値を受け取って対応する季節と動物を表示する例です。入力月に対して春夏その他の3つの季節を判定し、各季節にふさわしい動物を表示します。複数のcaseを同じ処理でまとめることで、効率的な季節判定が可能になります。

<?php $month = 7; switch ($month) { case 3: case 4: case 5: echo "春:ツバメが飛来"; break; case 6: case 7: case 8: echo "夏:セミが鳴いている"; break; default: echo "その他の季節:フクロウが鳴く"; } ?>

出力結果

夏:セミが鳴いている

時間帯挨拶

現在の時刻に基づいて適切な挨拶と動物を表示する例です。24時間制の時刻を受け取り、朝、昼、その他の3つの時間帯に分けて、それぞれの時間帯にふさわしい動物の行動を表現します。時刻に応じた動的なコンテンツ表示に活用できます。

<?php $hour = 14; switch (true) { case ($hour >= 6 && $hour < 12): echo "おはよう:ニワトリがコケコッコー"; break; case ($hour >= 12 && $hour < 18): echo "こんにちは:ネコが昼寝中"; break; default: echo "こんばんは:フクロウが活動開始"; } ?>

出力結果

こんにちは:ネコが昼寝中

年齢層分類

年齢を受け取って対応する年齢層と動物を表示する例です。幼児、大人、その他の3つのカテゴリに分類し、各年齢層を象徴する動物で表現します。年齢に応じたサービス提供やコンテンツの出し分けに活用できる実用的な例です。

<?php $age = 25; switch (true) { case ($age < 6): echo "幼児:ヒヨコがピヨピヨ"; break; case ($age >= 18 && $age < 65): echo "大人:クマが力強く歩く"; break; default: echo "その他:ペンギンがよちよち歩き"; } ?>

出力結果

大人:クマが力強く歩く

商品カテゴリ分類

商品のカテゴリコードを受け取って対応する商品分類と動物を表示する例です。衣類、食品、電子機器、その他の商品カテゴリを数値コードで管理し、それぞれに特徴的な動物を割り当てます。ECサイトや在庫管理システムでの商品分類処理に応用できます。

<?php $category = 2; switch ($category) { case 1: echo "衣類:ヒツジの毛が原料"; break; case 2: echo "食品:ウシのミルクが豊富"; break; case 3: echo "電子機器:キツネのように賢い"; break; default: echo "その他:パンダが首をかしげる"; } ?>

出力結果

食品:ウシのミルクが豊富

HTTPステータス処理

HTTPステータスコードを受け取って対応するメッセージと動物を表示する例です。200、404、500などの主要なステータスコードに対して、状況を表現する動物のメッセージを表示します。Webアプリケーションのエラーハンドリングやステータス表示に活用できます。

<?php $status_code = 404; switch ($status_code) { case 200: echo "成功:イルカが元気に泳ぐ"; break; case 404: echo "見つからない:モグラが地中に隠れる"; break; case 500: echo "サーバーエラー:アルパカが困っている"; break; default: echo "不明:カピバラがのんびり"; } ?>

出力結果

見つからない:モグラが地中に隠れる

月日数計算

月の番号を受け取ってその月の日数と特徴を動物で表現する例です。1月から12月までの各月に対して標準的な日数を表示し、月の特徴を動物の行動で表現します。カレンダーアプリケーションや日付処理システムで月ごとの処理を分岐させる際に参考になります。

<?php $month = 2; switch ($month) { case 2: echo "28日の月:ウサギが短い月を駆け抜ける"; break; case 4: case 6: case 9: case 11: echo "30日の月:サルが木から木へ飛び移る"; break; default: echo "31日の月:ゾウがゆっくり歩く"; } ?>

出力結果

28日の月:ウサギが短い月を駆け抜ける

まとめ

switch文は複数の条件分岐を効率的に処理できる制御構文です。if-elseif文の連続使用と比較して、コードの可読性と保守性を向上させることができます。switch文を適切に使用することで、条件によりプログラムの処理速度も改善され、より洗練されたPHPコードを書くことが可能になります。

switch文の活躍する場面

  • 曜日や月などの固定値による条件分岐処理での効率的な値判定
  • ユーザーの入力値や設定値に基づく多岐にわたる処理の振り分け
  • HTTPステータスコードやエラーコードなどの定数による処理分岐

重要なポイント

  • 複数caseの組み合わせによる柔軟で効率的な条件グループ化の実現
  • break文の記述により意図しない処理の連続実行を防ぐ
  • default文の活用による予期しない値に対する適切な例外処理の実装

これらの知識を身につけることで、PHP開発における条件分岐処理をより効果的に実装できるようになり、実際のWebアプリケーション開発で大いに役立つでしょう。

レベルを更に上げたい方はpaizaプログラミングスキルチェックへ

  1. paizaラーニングトップ
  2. リファレンス
  3. PHPのリファレンス記事一覧
  4. PHP switch文の使い方