気軽に読めるPHP入門書・PHPスクリプトが動かないときの原因と対策などを紹介します。

  1. PHPの基礎
  2. 4 view

条件分岐

要点のまとめ

・条件分岐 — 条件に応じて別の処理を実行する
・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;
?>

○実行結果

合格

PHPの基礎の最近記事

  1. PHP 7の宇宙船演算子の使い方

  2. 条件分岐

  3. 処理の繰り返し

  4. 変数

関連記事

PAGE TOP