PHPでswitch-case文(ステートメント)を使用する

PHPでswitch-case文(ステートメント)を使用してみます。

switch-case文(ステートメント)は、if-elseif-else文(ステートメント)の代用のように使うことができます。

また、switch-case文(ステートメント)は、一致するものが見つかるまで、括弧内の値に対して変数をテストし、一致するコードのブロックを実行します。

なお、switch文は行単位(文ごとの単位)で実行されます。条件の結果が「(真)true」となったcase文を見つけると、そのcase文に対してのコードを実行するだけでなく、それ以降の全てのcase文を最後まで自動的に実行しますので、case文内にbreak文を追加し、「(真)true」となったcase文を実行するとswitch-case文(ステートメント)を抜け出すように指示します。

■環境

・Windows10

・WampServer Version 3.2.3 64bit

・PHP Version 7.3.21

■switch-case文(ステートメント)を使用する

それでは、早速switch-case文(ステートメント)を使用してみます。

■コード

<?php
$color = "赤色";

switch($color){
    case "黒色";
        echo "あなたの好きな色は黒色です";
        break;
    case "赤色";
        echo "あなたの好きな色は赤色です";
        break;
    case "青色";
        echo "あなたの好きな色は青色です";
        break;
    case "黄色";
        echo "あなたの好きな色は黄色です";
        break;
    default:
        echo "あなたの好きな色は黒、赤、青、黄のいずれでもありません";        
}
?>

今回はcolorという変数を定義し、その中に文字列を格納します。

格納後、switch文を記述し、括弧内に今回用意した変数を指定します。

指定後、case文を書き、その右側に値を記述します。この値とswitch文の括弧内で指定した変数の中の値が一致すれば、処理が実行されます。今回の処理はecho文による文字列の出力です。

■実行

では、このスクリプトを「hello.php」という名前で保存し、実行させてみます。

実行させてみると、switch文の括弧内の変数と一致するcase文の処理が実行され、文字列が出力できることを確認できました。

■case文内にbreak文を追加しない場合

case文内にbreak文を追加しない場合は、どうなるのか。やってみます。

■コード

<?php
$color = "赤色";

switch($color){
    case "赤色";
        echo "あなたの好きな色は赤色です";
}
?>

case文の値が、switch文の括弧内の変数と一致する場合はどうなるのか。

■実行

実行してみると、case文の値が、switch文の括弧内の変数と一致する場合は、echo文の文字列が出力されました。

■コード

<?php
$color = "赤色";

switch($color){
    case "黒色";
        echo "あなたの好きな色は黒色です";
}
?>

今度は、case文の値が、switch文の括弧内の変数と一致しない場合はどうなるのか。

■実行

実行してみると、case文の値が、switch文の括弧内の変数と一致しない場合は、echo文の文字列が出力されず、何も表示されないというエラーが発生しました。

コメント

タイトルとURLをコピーしました