php_条件分岐

06条件分岐

ここからは条件分岐について学んでいきます。JavaScriptとほぼ同じなのであまり難しく考えず進めていきましょう。

if文

記述方法はJavaScriptとほぼ同じです。if()の()内がtrueの時は1つ目の{}内が実行されます。

<?php
    // 10 > 5 は正しいので、true と評価される。 if (true) となるので { } の中が実行される
    if (10 > 5) {
        echo 'ここだけ表示される' . PHP_EOL;
    }

    // 10 <= 5 は間違いなので、 false と評価される。if (false) となるので { } の中は実行されない
    if (10 <= 5) {
        echo 'ここには絶対来ない' . PHP_EOL;
    }
?>

if-else文

また、else文を書くことで、if文の条件式が falseの場合に実行させる処理を記述できます。

if文が実行されるとelse文は実行されず、if文が実行されないとelse文が実行されるようになります。elseは「その他」を意味する英単語です。

<?php
    if (10 == 5) {
        echo '10 == 5 は false なのでここは実行されない' . PHP_EOL;
    } else {
        echo 'if側が実行されないので、ここだけ実行される' . PHP_EOL;
    }
?>

上記の例だとelseの後の{}が実行されます。

if-elseif-else文

if-else文では条件分岐を2つまでしか分けることができませんでした。

しかし、実際には2の倍数の時、3の倍数の時、5の倍数の時など3つ以上に条件を分けたいときが多く存在します。

そこで用いられるのはif-elseif-else文です。

$number = mt_rand() % 10;

    if ($number % 2 === 0) {
        echo $number . 'は2の倍数です' . PHP_EOL;
    } elseif ($number % 3 === 0) {
        echo $number . 'は3の倍数です' . PHP_EOL;
    } elseif ($number % 5 === 0) {
        echo $number . 'は5の倍数です' . PHP_EOL;
    } else {
        echo $number . 'は0か1か7か9です' . PHP_EOL;
    }

mt_rand()は0から2147483647までの中からランダムに数字を生成します。

これを10で割ったときの余りを見ると、0から9までのランダムな数字が得られます。

PHPでは elseif()を用いて条件分岐を追加することができます。JavaScriptでは else if()でしたので、わずかに記述方法が異なります。

switch文

switch文は複数の場合に対して異なる処理を実行するための構文です。

if 文と同じく条件分岐を行いますが、特に条件が多い場合や値によって処理が分岐する場合に、switch文が見やすいと感じられることがあります。

実務でも、条件分岐が多くなる場面で switch文が使われることがあります。

switch文は、次のような場合によく使われます。

  • 複数の場合に対して異なる処理を実行する場合
  • 条件分岐が複雑な場合に、コードをスッキリさせるために使用する場合

switch文の構文は次のようになります。

switch (条件式) {
    case 値1:
        // 値1の場合に実行する処理
        break;
    case 値2:
        // 値2の場合に実行する処理
        break;
    ...
    default:
        // 上記の値以外の場合に実行する処理
        break;
}

switch 文は以下の3つの部分から構成されています。

  1. 条件式:switch文の各 case の処理を実行するかどうかを判定する条件式を指定します。
  2. case: 条件式と一致する値を指定します。caseの値に一致した場合に、そのcase以降に書かれた処理が実行されます
  3. default:caseの値に一致しなかった場合に実行される処理を指定します。defalutは省略することができます

switch文の例は以下のようです。

$num = 5;

switch ($num % 2) {
    case 0:
        echo $num."は偶数です。";
        break;
    case 1:
        echo $num."は奇数です。";
        break;
}

// 5は奇数です。

まずはswitchの()内が実行されます。

今回は$num % 2なので結果は1になります。(%はあまりを取得します。今回は5÷2のあまりなので1)

よって今回のcase文に一致するのはcase 1:の部分なのでecho $num."は奇数です。";が実行されます。


投稿日

カテゴリー:

投稿者:

タグ:

コメント

コメントを残す

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