【PHP】条件分岐の使い方まとめ

~簡単な自己紹介~

  • 嫁と猫3匹と暮らすフルリモートの三十路SE
  • ブリッジSE的なポジションを務めることが多く、チーム運営、顧客折衝、ベンダーコントロールが得意
  • 投資・節約・副業で資産形成中
  • 現在の金融資産は約1,650万円、めざせアッパーマス層(資産3,000万円)

PHPの条件分岐の使い方などをメモしていきます。

内容は随時更新していきます。

if~elseif~else

if文は最も一般的な条件分岐の書き方です。

$n = 1;
if ($n > 0) {
    echo "n > 0";
} elseif ($n === 0) {
    echo "n = 0";
} else {
    echo "n < 0";
}
//n > 0

elseifelseは省略可能です。

また、今回のように処理が1行しかない場合は、{}を使わずに下記のように書くことができます。

私が使っているphpcsというコーディング基準ではこの書き方はNGのようで、赤線で指摘されてしまいますが・・・。

$n = 1;
if ($n > 0)       echo "n > 0";
elseif ($n === 0) echo "n = 0";
else              echo "n < 0";
//n > 0

switch~case~default

switch文はif文と同じような動きをする処理です。

switch文は==(または===)による条件分岐を行うような処理に向いています。

逆に、>や<、!=などの比較が必要な場合はあまり適していません。

個人的にはif文の方が使いやすいので好きです。

$str = "center";
switch ($str) {
    case "left":
        echo "str is left.";
        break;
    case "center":
        echo "str is center.";
        break;
    case "right":
        echo "str is right.";
        break;
    default:
        echo "str is not match.";
}
//str is center

breakを入れない場合、if~、if~…という感じで、caseそれぞれが独立したif文のような動きになり、全てのcaseを実行することになるのが注意点です。

breakを入れた場合、if~elseif~…の動きになります。

defaultは省略可能で、elseのような動きになります。

三項演算子

三項演算子はif~elseを1行で書きたいときに使います。

$n = 1;
echo $n > 0 ? "n > 0" : "n <= 0";
//n > 0

「条件 ? trueの場合の処理 : falseの場合の処理」という書き方になります。

上記の場合、$nが0より大きいので、出力はn > 0になります。

Null合体演算子

Null合体演算子は変数や配列、オブジェクトが存在しない場合の分岐処理を1行で書くことができます。

分岐処理ではありませんが、分岐処理と同じような動きができるのでご紹介します。

ちなみに結構新しいバージョンから使えるようになったので、知らない人も多いです。

$arr = [];
echo $arr[0] ?? "存在なし";
//存在なし

$arr[0]は存在しないので、「存在なし」が出力されます。

これをif文で書く場合、下記のようになります。

$arr = [];
if (isset($arr[0])) {
    echo $arr[0];
} else {
    echo "存在なし";
}
//存在なし

以上です。

お疲れさまでした。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です