要点のまとめ
・if文 — ~ならば~する
例:aとbが一致する場合はメッセージを表示する
「それ以外」の記述 — else、elseif
「~でなければ」(否定演算子の「!」と共に) — if (!条件)
例:ファイルが存在しない場合はエラー
・switch文 — 指定値にあてはまるか調べる
例:1が出たら大吉、2は中吉、3は小吉 …
分岐条件が多い場合はif文ではなくswitch文でスッキリまとめる
どれにもあてはまらないケース(default)も作成
・3項演算子 — 条件分岐を簡単に記述できる
例:aの場合はb、それ以外はc — 「a ? b : c」
条件分岐とは、「ある条件を満たすときは処理A、それ以外は処理Bを実行する」のように条件に応じて処理を切り替える仕組みです。if文やswitch文を使用して記述します。
if文(~ならば~する)
ある条件を満たす場合に処理を実行する場合は、if文を使用します。次のような構文で条件と処理を記述し、if(~ならば)、else(それ以外は)、elseif (それ以外で~ならば)を組み合わせて条件を作成することができます。
if (条件1) { 処理A }
if (条件1) { 処理A } else { 処理B }
if (条件1) { 処理A } elseif (条件2) { 処理B } elseif (条件3) { 処理C } else { 処理D }
次の例では、$pointが80以上、70以上、60以上かどうかの場合は「合格」、それ以外は「不合格」と表示されます。
<?php $point = 80; if ($point >= 60) { echo "合格"; } else { echo "不合格"; } ?>
○実行結果
elseifを使用すると、「それ以外で~の場合は処理X、それ以外で~の場合は処理Y、、、」のように果てしなく条件を追加できますが、見通しが悪くなるので、条件が多い場合はswitch文でスッキリまとめた方が良いでしょう。
条件の記述
if文の条件の記述例を以下に示します。
○条件の記述例
if ($a == “x”) → 一致するか
if ($a === $b) → 型も含めて一致するか
if ($a != “x”) → ~ではない(不一致)
if ($a > 10) → 大小比較
if ($a == true) → 式が真(true)
if ($a) → 「== true」の省略表記
if (empty($a)) → true/falseを返す関数を利用
if (!file_exists(“x.txt”)) → 式がfalse(そう言えない:偽)
「$aがtrue(そう言える:真)かどうか」を調べる場合は、「if ($a == true) 」と記述しますが、「== true」を省略して「if ($a) 」とすることもできます。trueまたはfalseを返す関数をif文の条件に組み込んだ「if (empty($a))」のような記述もよく使われます。この場合、$aが空の場合(empty)は処理が実行されます。
否定演算子「!」を使用して、条件がfalseの場合は処理を実行するという記述もできます。たとえば、「if (!file_exists(“x.txt”))」と記述すると、ファイルが存在しない場合のみに処理を実行することができます(ファイルが存在しない場合はfile_exists関数はfalseを返す)。
switch文(指定値にあてはまるか調べる)
「変数$aが1の場合は大吉、2は中吉、3は小吉」のように、変数値に応じて処理を切り替えたい場合はswitch文を使用します。分岐条件が多い場合はif文で記述するよりもスッキリまとまります。
調べる変数について「値1の場合は処理A、値2の場合は処理B」を記述するには、「switch (変数)」に指定された変数と照合する値をcaseに指定します。その値と一致する場合は、処理が実行されます。このとき、次のcaseの前に「break;」(switch文から抜ける)と記述して、次のcaseを参照しないようにする必要があります。また、どのcaseにも一致しなかった場合も想定して、「default」にデフォルトの動作を記述しておく必要もあります。
switch (変数) { case 値1: 処理A break; case 値2: 処理B break; default: echo "ハズレ"; }
switchの使用例を以下に示します。ランダムに取得した数値に応じて、「大当たり」「中当たり」「ハズレ」を表示するおみくじのようなものです。
<?php $a = mt_rand(1, 5); switch ($a) { case 1: echo "大当たり"; break; case 2: echo "中当たり"; break; default: echo "ハズレ"; } ?>
○実行結果
3項演算子
3項演算子を使用すると、条件分岐を簡単に記述できます。たとえば、「aの場合はb、それ以外はc」という処理は、「a ? b : c」と記述します。次の例では、$intが80以上の場合は「合格」、それ以外は「不合格」が表示されます。
<?php $int = 100; $result = $int >= 80 ? "合格" : "不合格"; echo $result; ?>
○実行結果