PHP:条件分岐

PHPのif文、switch文による条件分岐について学習した内容をまとめています。

条件に応じて処理をコントロールすることができれば、色々なことができるようになってくると思います。

if文

if文は、条件の値に応じて処理を行う条件判断文の一つ。

条件がtrueの際に一行だけ処理を行う場合は以下のように記述できる。

    // 構文
    if (条件)
        //条件がtrueだった場合の処理;

また、条件が複数の場合には以下のように記述できる。

    // 構文
    if (条件1) {
        //条件1がtrueだった場合の処理;
    } elseif(条件2) {
        //条件2がtrueだった場合の処理;
    } elseif(条件3) {
        //条件3がtrueだった場合の処理;
    } else {
        //全ての条件がfalseだった場合の処理;
    }

使用してみる。

    <?php
    $num = 5;

    if ($num == 10) {
        print "10だと思う<br>";
    } elseif($num == 5) {
        print "5だと思う<br>";
    } elseif($num == 1) {
        print "1だと思う<br>";
    } else {
        print "どれでもないかも<br>";
    }
    //
    //結果
    // 5だと思う
    //
    ?>

別の記述方法もある。

    // 構文
    if (条件1) :
        //条件1がtrueだった場合の処理;
    elseif(条件2) :
        //条件2がtrueだった場合の処理;
    else :
        //全ての条件がfalseだった場合の処理;
    endif;

目次へ

switch文

switch文は、if文同様に条件の値に応じて処理を行う条件判断文の一つ。

式の評価がcaseの後の定数と一致すれば、breakまでの処理を実行する。

また、defaultは省略できる。

    // 構文
    switch(式) {
        case 定数1:
            //式の評価が定数1だった場合の処理;
            break;
        case 定数2:
            //式の評価が定数2だった場合の処理;
            break;
        default:
            //式の評価が定数1でも定数2でもなかった場合の処理;
            break;
    }

breakを忘れてしまうと他のcase内の処理まで実行されてしまうため注意したい。

    <?php
    // breakを忘れると・・・
    $num = 1;

    switch($num) {
        case 1:
            print "break忘れてない、はず<br>";
            //break;
        case 2:
            print "あれ、break忘れてるって<br>";
            break;
        default:
            print "何が起こった";
            break;
    }
    //
    //結果
    // break忘れてない、はず
    // あれ、break忘れてるって
    //
    ?>

別の記述方法もある。

    // 構文
    switch(式) :
        case 定数1:
            //式の評価が定数1だった場合の処理;
            break;
        case 定数2:
            //式の評価が定数2だった場合の処理;
            break;
        default:
            //式の評価が定数1でも定数2でもなかった場合の処理;
            break;
    endswitch;

目次へ

三項演算子

簡単な条件判断ならば、三項演算子「?:」を使って記述できる。

    // 構文
    (条件) ? trueの式 : falseの式 ;

if文と比べてみる。

    <?php
    $num = 1;

    //if文
    if ($num == 1):
        print "1だね<br>";
    else:
        print "1じゃないね<br>";
    endif;

    //三項演算子
    print ($num == 1) ? "1だね<br>" : "1じゃないね<br>";

    //結果
    // 1だね
    // 1だね
    ?>

目次へ

作成日:2018/07/31
更新日:2018/08/16