HOME   入り口   MENU


No13.あれかなこれかなもしも! ---- switch文




条件式が二者択一の場合はif文でもいいけれど
たくさんの選択肢がある場合どんどんコードが長くなっちゃいます。
で、後から見て「???」てなりがちなので
そんなときはswitch文を使うと見易くなります。
例えば曜日チェック!!
<?php
switch(date("w")){
    case 0:
        echo "今日は日曜日です。";
        break;
    case 1:
        echo "今日は月曜日です。";
        break;
    case 2:
        echo "今日は火曜日です。";
        break;
    case 3:
        echo "今日は水曜日です。";
        break;
    case 4:
        echo "今日は木曜日です。";
        break;
    case 5:
        echo "今日は金曜日です。";
        break;
    case 6:
        echo "今日は土曜日です。";
        break;
    default:
        echo "エラー";
        break;
}
?>

実行すると
今日は火曜日です。
と今日の曜日が表示されます。
これをif文でやったら・・・・・
って考えるだけで長く見難いコードになりそうなので省略(笑)

defaultへはcaseの値どれにも該当しないときにやってきます。
if文のelseみたいなものですね。(^_^)

コードの中のbreak。これはなんでしょう?
実はこれを記述しないと次のcaseの処理を実行してしまうのです。
ん?・・・ってことはつまり
breakを記述しなければ、次のcase処理を利用することができるのです。
↓↓↓↓↓↓↓↓↓↓
<?php
switch(date("w")){
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
        echo "まだ平日だ・・・";
        break;
    case 0:
    case 6:
        echo "やったぁ!週末♪";
        break;
    default:
}
?>

これを実行するとdate("w")の値が1,2,3,4,5のときは「まだ平日だ・・・」と表示され
ate("w")の値が0,6のときは「やったぁ!週末♪」と表示されます。
ってことで今日は?

まだ平日だ・・・

ですね。(^_^)


サンプル: こう書くと   ==>    こうなる!

switch文を使ったお手紙作成です。



(オマケ)
swith文は波カッコ({)を使わなくても記述できます。
上のサンプルを波カッコなしで書くと

switch(date("w")):
    case 0:
        echo "今日は日曜日です。";
        break;
    case 1:
        echo "今日は月曜日です。";
        break;
    case 2:
        echo "今日は火曜日です。";
        break;
    case 3:
        echo "今日は水曜日です。";
        break;
    case 4:
        echo "今日は木曜日です。";
        break;
    case 5:
        echo "今日は金曜日です。";
        break;
    case 6:
        echo "今日は土曜日です。";
        break;
    default:
        echo "エラー";
        break;
endswitch;

endswitch;を忘れずに!!











  HOME