【PHP】条件分岐の使い方まとめ
~簡単な自己紹介~
- 嫁と猫3匹と暮らすフルリモートの三十路SE
- 投資・節約・副業で資産形成中
- 現在の金融資産は約1,750万円、めざせアッパーマス層(資産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
elseifとelseは省略可能です。
また、今回のように処理が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 "存在なし";
}
//存在なし
以上です。
お疲れさまでした。