if 文の elseif を使った複数条件分岐と同様のことが switch 文でも記述できます。
変数に代入されている値によって条件を分けたい場合に便利です。
ここでは、PHP における条件分岐の方法として switch についてまとめています。
if 文については、以下にまとめています。
switch-case の構文
PHP における switch 文の基本的な構文は、以下のようになります。
switch-case 文の基本構文
switch (変数) {
case 値1: // 最後にコロンをつける
変数が値1のとき、ここが実行される;
break;
case 値2:
変数が値2のとき、ここが実行される;
break;
default: // 省略可能
変数の値がどのcaseの値でもないとき、ここが実行される;
break;
}
上記の構文を if 文で記述すると、以下のようになります。
switch-case 文の基本構文を if 文で記述
if (変数 == 値1) {
変数が値1のとき、ここが実行される;
} elseif (変数 == 値2) {
変数が値2のとき、ここが実行される;
} else {
変数の値がどのcaseの値でもないとき、ここが実行される;
}
break を記述しなかった場合
PHP の switch 文における case 文で、break を記述しないことで、
色々なプログラムを書くことができます。
1 2 3 4 5 6 7 8 9 10 11 12 |
$x = 10; switch ($x) { case 10: echo "10です"; case 20: echo "10または20です"; break; default: echo "10でも20でもない"; break; } |
PHPでは、switch 文における case 文で break が無い場合は、
次の制御文が実行されます。
上記の例では、case 10 の制御文と case 20 の制御文が実行され、
「10です」と「10または20です」という文言が表示されます。
switch 文を使ったサンプル
PHP の組込み関数である date を使って、曜日を表示するプログラムを例示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<?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 "ここにはこない"; } ?> |