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

Web開発学習ロードマップ

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

しかし実際の処理では、

・条件が2つ以上ある
・場合分けが増えてくる

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

そのような場合に使うのが、
elseifswitch です。

この記事では、
複数条件を扱うための条件分岐
コード付きで整理します。


この記事で学べること

・elseif の書き方と使いどころ
・switch 文の基本構造
・if / elseif と switch の使い分け
・実務でよくある分岐パターン


elseif とは何か

elseif は、
複数の条件を順番にチェックしたい場合 に使います。

考え方はシンプルです。

・最初の条件がダメなら
・次の条件を見る
・それもダメなら次…

という流れです。


elseif の基本的な書き方

サンプルコード①:elseif の基本

<?php
$score = 75;

if ($score >= 80) {
  echo 'とても良い';
} elseif ($score >= 60) {
  echo '合格';
} else {
  echo '不合格';
}

コードの読み解き

・80点以上 → とても良い
・60点以上 → 合格
・それ以外 → 不合格

上から順番に条件を評価し、
最初に true になった処理だけ が実行されます。


elseif を使うときの重要な考え方

elseif を使うときは、
条件の順番が非常に重要 です。

例えば、

・60点以上
・80点以上

という順番で書くと、
80点以上の条件に到達しません。

「どの条件を先に評価すべきか」
を必ず考えましょう。


フォーム処理での実用例

elseif は、
入力内容に応じて
メッセージを変えたいときによく使われます。

サンプルコード②:入力値による分岐

<?php
$age = $_POST['age'] ?? 0;

if ($age >= 20) {
  echo '成人です';
} elseif ($age >= 18) {
  echo '18歳以上です';
} else {
  echo '18歳未満です';
}

switch とは何か

switch は、
特定の値によって処理を分けたい場合 に使います。

elseif と違い、

・同じ変数
・決まった値

で分岐する場合に向いています。


switch の基本構造

サンプルコード③:switch の基本

<?php
$day = '月';

switch ($day) {
  case '月':
    echo '月曜日です';
    break;
  case '火':
    echo '火曜日です';
    break;
  default:
    echo 'その他の曜日です';
}

コードの読み解き

・$day の値をチェック
・一致した case の処理を実行
・break で switch を抜ける
・どれにも当てはまらなければ default


break を忘れるとどうなるか

switch 文では、
break を忘れると処理が続いてしまう
という特徴があります。

サンプルコード④:break を忘れた例

<?php
$day = '月';

switch ($day) {
  case '月':
    echo '月曜日です';
  case '火':
    echo '火曜日です';
}

この場合、

・「月曜日です火曜日です」

と表示されます。

初心者が最もハマりやすいポイントです。


if / elseif と switch の使い分け

目安としては次の通りです。

・範囲や条件で分岐したい
 → if / elseif

・値が決まっている場合
 → switch

無理に統一する必要はなく、
読みやすさを優先 してください。


実務ではどちらが多いか

実務では、

・入力チェック
・数値判定

では if / elseif が多く、

・ステータス判定
・種別コード判定

では switch がよく使われます。


初心者がよくやるミス

複数条件分岐で多いミスです。

・条件の順番を考えていない
・break を書き忘れる
・switch で条件式を書こうとする

「この分岐は何を基準にしているか」
を常に意識しましょう。


まとめ

この記事では、
複数条件を扱うための

・elseif
・switch

の基本的な使い方を学びました。

条件分岐が書けるようになると、
プログラムが一気に実用的 になります。

次は、
繰り返し処理を使って
同じ処理を効率よく書く方法に進みます。


次に読むべき記事

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

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

コメント