目次
1. 本記事のポイント
- PHPにおける代表的な条件分岐構文(if / else / switch)の使い方を整理
- 書き方の違いと選定基準を具体例とともに解説
- 実務でありがちな誤用や注意点にも触れる
2. PHPの条件分岐構文とは?
PHPでは、条件に応じて処理を分けるために複数の条件分岐構文が用意されています。
主に以下の3種類が代表的です:
if / elseif / else
:最も柔軟で一般的な構文switch
:特定の値に応じた分岐に適している- 三項演算子(
?:
)や null合体演算子(??
)も補助的に利用される
これらはユーザー入力のバリデーション、ルーティング分岐、表示内容の切り替えなど、実務上頻出する制御ロジックで重要な役割を果たします。
3. 詳細解説
if / else / elseif の基本構文
複雑な条件や複数の分岐がある場面で使用します。
PHP
<?php
$score = 75;
if ($score >= 90) {
echo "優秀";
} elseif ($score >= 70) {
echo "合格";
} else {
echo "再試験";
}
// 出力: 合格
?>
switch文の基本と使いどころ
特定の値に対して分岐処理を行う場合、switchの方が読みやすくなります。
PHP
<?php
$role = "admin";
switch ($role) {
case "admin":
echo "管理者画面";
break;
case "editor":
echo "編集者画面";
break;
case "viewer":
echo "閲覧者画面";
break;
default:
echo "不明な権限";
}
// 出力: 管理者画面
?>
三項演算子と null合体演算子の補足
簡単な条件で代替値を返すときに使います。
PHP
<?php
$age = 20;
echo ($age >= 18) ? "成人" : "未成年"; // 成人
$name = $_GET['name'] ?? 'ゲスト';
echo $name; // クエリに name がない場合は "ゲスト"
?>
if と switch の選定基準
- switchが適するケース:比較対象が同じ変数で複数の定数と一致するかを確認したい場合
- ifが適するケース:条件式が複雑な比較や範囲、関数呼び出しを含む場合
4. よくあるミス・誤解・落とし穴
- switch文でbreak漏れ:
break
を書き忘れると、次のcaseまで処理が続行される(フォールスルー) - 条件の評価順に注意:if文でより具体な条件を先に書かないと、意図した分岐に入らないことがある
- 厳密比較を忘れる:
==
でなく===
を使わないと型の違いに起因する誤動作が起こる可能性がある - null合体演算子の対象に注意:未定義変数を含むとNoticeが発生する可能性がある
5. まとめ
PHPの条件分岐構文は、if/elseif/elseによる柔軟な条件処理と、switchによる値比較の効率化が基本です。
三項演算子やnull合体演算子も簡潔な表現で補助的に活用できます。
構文ごとの特性を理解し、誤用を避けることで、より安全で明確な条件処理が実現できます。