#5 PHPで学ぶ条件分岐の基本
PHPの条件分岐は、C言語系の言語に共通する標準的な書き方が基本です。この記事では、PHPにおける条件分岐の基本と、実務で気をつけたい比較のルールを解説します。
if文の基本
$age = 20;
if ($age >= 18) {
echo "成人です";
} else {
echo "未成年です";
}
変数名の前に必ず$が付く点以外は、JavaScriptなどと似た書き方です。
elseifで分岐を増やす
PHPでは、else ifではなくelseifと1単語で書くことが多いのが特徴です。
if ($age >= 65) {
echo "高齢者です";
} elseif ($age >= 18) {
echo "成人です";
} else {
echo "未成年です";
}
match式で分かりやすく分岐する
比較的新しいPHPには、複数の値によって処理を分けるmatchという書き方もあります。
$day = "月";
$result = match ($day) {
"土", "日" => "休日です",
default => "平日です",
};
echo $result;
従来のswitchと違い、matchは自動的に厳密な比較(===相当)を行い、breakも不要なため、より安全でシンプルに書けます。
比較には===を使う
PHPでも、==と===の違いに注意が必要です。値だけを比べる==は型変換が起きるため、意図しない一致が発生することがあります。
var_dump(0 == "abc"); // PHP8以降ではfalse(バージョンで挙動が異なった経緯がある)
var_dump("1" === 1); // false(型まで比較するため)
基本的には型まで厳密に比較する===を使いましょう。
三項演算子で短く書く
「条件によって値を1つ選ぶ」だけの単純な分岐は、三項演算子でも書けます。
$status = ($age >= 18) ? "成人" : "未成年";
さらに、値が空でない場合はそのまま使い、空の場合だけ既定値にしたい場合は??(null合体演算子)が便利です。
$name = $inputName ?? "ゲスト";
PHPならではの注意点
PHPにはelseif(1単語)とelse if(2単語)の両方の書き方が存在し、どちらも動作します。混在させるとコードの見た目が揃わなくなるため、プロジェクト内でどちらかに統一しておくのがおすすめです。また、==による比較の挙動はPHPのバージョンによって変更された経緯があるため、古い情報を参考にする際は現在の挙動と食い違っていないか注意が必要です。
まとめ
PHPの条件分岐は基本的なif・elseif・elseで構成され、match式も便利です。==と===の違いを意識しながら、正確な比較を心がけましょう。
本ページはプロモーションを含みます。
参考書籍(PR)
PHPをもっと学びたい方には「10日でおぼえるPHP入門教室 第4版」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿