条件分岐 「if文」
基本構文
◯◯の部分はboolean型の値として、結果がtrueだった場合のみif文の処理が実行されます。
if (◯◯) {処理}
例)$a > 4はtrueのためif内の処理が実行されます。
$a = 5;
if ($a > 4) { echo '$aは4より大きい数字です'; }
複数条件
条件は else や、 elseif を利用することで、複数条件を記述することができます。
else
このPHPコードは、年齢に基づいて「喫煙可能」か「喫煙不可」かを判定できます。
$age = 19;
if ($age >= 20) {
echo '喫煙可能です';
} else {
echo '喫煙不可です';
}
*変数 $age に 19 が設定されているので、出力結果は「喫煙不可です」と表示されます。
*if 文で、$age >= 20 をチェックします。この条件が true なら「喫煙可能です」と表示されます。
*条件が false なら else ブロックが実行され、「喫煙不可です」と表示されます。
elseif
elseifは連続で何個でも使用することができます。 しかし、 if は一番最初に、 else は一番最後にそれぞれ一つしかかけないということを覚えておきましょう!
$a = 5;
if ($a < 5) {
echo '5未満です';
} elseif ($a === 5) {
echo '5です';
} elseif ($a <= 10) {
echo '10以下です';
} else {
echo '10より大きい数字です';
}
*$a に 5 が設定されています。
*if 文で $a < 5 を最初にチェックしますが、これは false です。
*次に、elseif ($a === 5) がチェックされます。ここで条件が true になるので、「5です」と出力されます。
*この時点で条件が満たされたため、それ以降の elseif ブロックや else ブロックはチェックされません。
$a = 5;
if ($a <= 5) {
echo '5以下です';
} elseif ($a === 5) {
echo '5です';
} else {
echo '5より大きい数字です';
}
*変数 $a の値に基づいて条件を判定しているこのコードには問題があります。
*最初の条件 if ($a <= 5) で、$a が5であればこの条件が true になるため、すぐに「5以下です」と出力されます。
*elseif ($a === 5) は、すでに最初の条件でカバーされているため、実行されることはありません。
*$a === 5 の条件を最初に評価するか、不要な elseif を削除するのことで改善されます。
この記事が気に入ったらサポートをしてみませんか?