PHP

PHP switchの使い方

2015/05/09

「switch」の使い方です。

switchは()の中身によって実行する処理を変えることができる関数です。
下記のように1つの変数をif..elseifで何度も判定する場合、switchを使用した方が可読性が高いと思います。

<?php
    $x = 20;

    if($x == 10){
        echo "変数xの中身は10です";
    }else($x == 20){
        echo "変数xの中身は20です";
    }elseif($x == 30){
        echo "変数xの中身は30です";
    }else{
        echo "変数xの中身は10~30ではありません。";
    }
?>

上記をswitchで書くと下記になります。

<?php
    $x = 20;

    switch($x){
        case 10:
            echo "変数xの中身は10です。";
            break;
        
        case 20:
            echo "変数xの中身は20です。";
            break;
        
        case 30:
            echo "変数xの中身は30です。";
            break;
        
        default:
            echo "変数xの中身は10~30ではありません。";
            break;
    }
?>

» 実行結果

「case 値:」の値が()の中身と等しければその後に書かれている処理を行い、違う場合は次の「case 値:」の値と比較する・・・ということを繰り返します。もちろん、処理は複数行書いても大丈夫です。

等しいものがない場合は「default:」の後に書かれている処理を行います。

慣れないと「break;」を書き忘れてしまいがちですが、その場合、等しい値があり処理が実行されたにもかかわらず、次の「case 値:」との比較を繰り返しますので、意図しない結果になることもあります。気をつけましょう。
(あえてbreakを書かないという使用方法もあります)

switchを使用する上でのもう一つの注意点は()の中身と「case 値:」の値との比較が「==」で行われるということです。
データ型まで厳密に比較する必要がある場合は、switchの使用を避けた方がいいでしょう。

-PHP