プログラミングの基礎である条件分岐について、独学エンジニアという学習サイトで学んだ内容をもとに、自分用の備忘録としてまとめました。
PHPでよく使われるif文、switch文、そしてPHP 8.0から導入されたmatch式の特徴や使いどころを解説します。
1. 条件分岐とは?
条件分岐は、特定の条件に応じてプログラムの処理を分岐させる仕組みです。プログラミングの基礎中の基礎であり、PHPでも頻繁に使用されます。
2. PHPの条件分岐の種類
PHPには以下の3種類の条件分岐があります。それぞれの特徴と使い方を解説します。
(1) if 文
-
最も基本的な条件分岐の方法。
-
書き方(構文):
if (条件式) { // 条件式がTRUEの場合に実行される処理 } elseif (別の条件式) { // 別の条件式がTRUEの場合に実行される処理 } else { // 上記の条件がすべてFALSEの場合に実行される処理 }
-
特徴:
- 条件が複数ある場合は
elseif
を追加。 - すべての条件がFALSEの場合は
else
を使用。
- 条件が複数ある場合は
-
例:
$score = 85; if ($score >= 90) { echo "優秀です"; } elseif ($score >= 70) { echo "合格です"; } else { echo "不合格です"; }
(2) switch 文
-
同じ変数に対して、複数の値で条件分岐を行いたい場合に適した方法。
-
書き方(構文):
switch (式) { case 値1: // 値1の場合に実行される処理 break; case 値2: // 値2の場合に実行される処理 break; default: // どのケースにも当てはまらない場合の処理 }
-
特徴:
- 条件に合致した場合に
break
を記述しないと、後続の処理も実行される(フォールスルー)。 -
default
はどの条件にも当てはまらない場合の処理。
- 条件に合致した場合に
-
例: 都道府県による地域分け
$prefecture = "大阪"; switch ($prefecture) { case "東京": echo "関東地方"; break; case "大阪": case "京都": echo "関西地方"; break; default: echo "その他の地域"; }
(3) match 式
-
PHP 8.0 から登場した新しい条件分岐の方法。
-
複数の条件分岐を行い、その結果を 変数に代入 したい場合に適している。
-
書き方(構文):
$変数 = match (式) { 条件1 => 値1, 条件2 => 値2, default => デフォルト値, };
-
特徴:
-
switch
文と似ているが、式であるため値を返す。 - *厳密な比較(型変換なし)**を行う。
-
default
は省略可能。
-
-
例:
$prefecture = "大阪"; $area = match ($prefecture) { "東京" => "関東地方", "大阪", "京都" => "関西地方", default => "その他の地域", }; echo $area; // 結果: 関西地方
3. 条件分岐の使い分け
(1) if 文
-
使いどころ:
- 条件が複雑で、論理演算(
&&
,||
)などを伴う場合。 - 条件の組み合わせやパターンが多岐にわたる場合。
- 条件が複雑で、論理演算(
-
例:
if ($age >= 18 && $age <= 25) { echo "対象年齢です"; }
(2) switch 文
-
使いどころ:
- 同じ変数に対して複数の値で条件分岐したい場合。
- 見やすく簡潔に記述できる場合。
-
例:
$day = "土曜日"; switch ($day) { case "土曜日": case "日曜日": echo "週末です"; break; default: echo "平日です"; }
(3) match 式
-
使いどころ:
- 条件分岐の結果を変数に代入したい場合。
- 厳密な比較が必要な場合。
-
例:
$grade = "B"; $evaluation = match ($grade) { "A" => "優秀", "B" => "良い", "C" => "合格", default => "不合格", }; echo $evaluation; // 結果: 良い
4. 条件分岐の注意点
-
switch
文の型変換に注意-
switch
文では緩やかな比較が行われるため、型変換が発生することがあります。 - 厳密な比較が必要な場合は、
match
式を使用。
-
-
break
の記述漏れ-
switch
文でbreak
を忘れると、後続の処理が実行されてしまう(フォールスルー)。
-
-
読みやすさを重視
- 条件が複雑になる場合は、コードの可読性を意識して適切な構文を選ぶ。
5. まとめ
条件分岐の種類と使いどころ
構文 | 特徴 | 使いどころ |
---|---|---|
if 文 | 一般的な条件分岐。複数の条件や複雑な論理演算を扱える。 | 条件が複雑な場合や論理演算を伴う場合。 |
switch 文 | 同じ変数を複数の値で条件分岐。緩やかな比較を行う。 | 同じ変数を複数の値で分岐したい場合。 |
match 式 | 条件分岐の結果を変数に代入できる。厳密な比較を行う(PHP 8.0以降)。 | 条件分岐の結果を変数に代入したい場合や厳密な比較が必要な場合。 |
条件分岐を使いこなすポイント
- if 文を基本とし、状況に応じてswitch 文やmatch 式を使い分ける。
- 読みやすいコードを意識し、条件が増えすぎる場合はリファクタリングを検討。
- 公式ドキュメントを参照しながら、構文や挙動を正確に理解する。
整理した内容は以上です。
条件分岐はPHPに限らず、すべてのプログラミングで欠かせない基本スキルです。
今回まとめた内容が、学習中の皆さんの理解の助けとなり、実践的なコード作成に役立てば幸いです。