6-5 PHPの条件分岐(elseif / switch)

Web開発学習ロードマップ

前の記事では、
if / else を使った基本的な条件分岐 を学びました。

しかし実際のWeb開発では、

・条件が2つ以上ある
・選択肢がいくつもある
・場合ごとに処理を分けたい

といったケースがほとんどです。

そこで使われるのが、

・elseif
・switch

です。

この記事では、
「条件が複数ある場合の正しい書き方」
コードを動かしながら理解していきます。


この記事で学べること

・elseif の使いどころ
・if / elseif / else の構造
・switch 文の考え方
・elseif と switch の使い分け


条件が2つ以上ある場合の考え方

まず大前提として、
条件分岐は次の形に分類できます。

・範囲で分けたい → if / elseif
・値が一致するかで分けたい → switch

この考え方を先に押さえておくと、
迷わなくなります。


elseifとは何か

elseif は、

「最初の if が false のとき、
 次の条件をチェックする」

ための構文です。


if / elseif / else の基本形

サンプルコード①:年齢による判定

<?php
$age = 15;

if ($age >= 18) {
  echo '成人です';
} elseif ($age >= 13) {
  echo '中高生です';
} else {
  echo '子供です';
}

コードの解説

この処理は、次の順番で判定されます。

  1. 18以上か? → false

  2. 13以上か? → true

  3. ここで処理が終了

ポイントは、
上から順番に評価される という点です。


elseifを使うときの注意点

elseif を使う場合、

・条件の順番が非常に重要
・一度 true になると、それ以降は見ない

という特徴があります。

範囲条件を書くときは、
広い条件を先に書かない
よう注意しましょう。


switchとは何か

switch は、

「値が一致するかどうか」
で分岐したいときに使います。

特定の値ごとに処理を分けたい場合、
if を何個も書くより
読みやすくなります。


switch文の基本構造

サンプルコード②:曜日判定

<?php
$day = 'mon';

switch ($day) {
  case 'mon':
    echo '月曜日';
    break;
  case 'tue':
    echo '火曜日';
    break;
  case 'wed':
    echo '水曜日';
    break;
  default:
    echo '不明な曜日';
}

コードの解説

この switch 文は、

・$day の値を確認
・case と一致した処理を実行
・break で処理を終了

という流れになっています。


breakを書き忘れるとどうなるか

switch 文では、
break の書き忘れが非常に多い です。

break がないと、

・次の case も実行される

という動きになります。

学習初期では、
「case には必ず break」
と覚えておくと安全です。


default の役割

default は、

・どの case にも一致しなかった場合

に実行されます。

if / else における
else と同じ役割 です。

想定外の値に備えるため、
基本的に default は書くようにしましょう。


elseif と switch の使い分け

使い分けの目安を整理します。

elseif が向いている場合

・数値の範囲で分けたい
・大小比較をしたい


・点数による評価
・年齢判定


switch が向いている場合

・値が一致するかどうかだけを見たい
・選択肢が固定されている


・曜日
・ステータス
・種別コード


初心者がよくやるミス

条件分岐が複雑になると、
次のミスが起きやすくなります。

・if と switch を混同する
・条件の順番を考えていない
・default を書いていない

迷ったときは、
「これは範囲か?一致か?」
と自問してください。


条件分岐は「読みやすさ」が最優先

条件分岐は、

・動けばいい
ではなく
・後から読んで分かる

ことが非常に重要です。

そのため、

・if が多くなりすぎたら switch を検討
・処理内容が分かる書き方を意識

する癖をつけましょう。


まとめ

条件が複数ある場合、

・範囲判定 → if / elseif
・一致判定 → switch

という使い分けをすることで、
コードは一気に読みやすくなります。

条件分岐は、
PHPで最も使う構文のひとつです。

ここでしっかり理解しておくと、
フォーム処理やデータ制御が楽になります。


次に読むべき記事

▶ 次の記事
6-6 PHPで繰り返し処理(for / foreach)

▶ 関連記事
6-4 PHPの条件分岐(if / else)

コメント