PHPの条件式(switch文)
更新日 : 2018年06月05日
今回は条件式の別パターン(switch文)について書いていきたいと思います。
前回のif文はelse if
を使用して複数の条件分岐を行うものでした。
今回はswitch文という構文で値ごとに条件分岐を行っていきます。
条件式の書式(switch文)
switch文に関してもPHPの書式は一般的なプログラミング言語とさほど変わりません。
以下で書式を見てみましょう。
switch(検証したい値) {
case 値その1:
検証したい値が「値その1」のときの処理
break;
case 値その2:
検証したい値が「値その2」のときの処理
break;
case 値その3:
検証したい値が「値その2」のときの処理
break;
default:
検証したい値が上の値その1〜3に当てはまらない時の処理
}
このように書きます。
丸括弧内の値をcase
の横の値と比較して値が一致した場合にcase~break
までの処理が実行されます。
また、default構文はなくても構いません。任意で使用できます。
break
には中括弧{}内の処理を中断し飛ばす機能があります。
このbreakはswitch文だけの特別な構文ではありません。
例えばcaseの値その1の処理が実行されたとします。処理の最後にbreakを行わないとその下のcaseの比較やdefaultの処理が無駄に行われることになります。
では具体的に実行可能なコードを見てみましょう。
コード例
<?php
$x = 20;
switch ($x) {
case 10:
echo "xは10です。";
case 20:
echo "xは20です。";
break;
default:
echo "xは10でも20でもありません。";
break;
}
echo "<br>";
date_default_timezone_set("Asia/Tokyo");
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;
}
?>
最初のswitch文は変数$x
を検証しています。10の場合、20の場合、それ以外の場合で比較し、当てはまった部分のみ処理されています。
2つ目のswitch文では曜日を検証しています。date("w")
とすると、曜日が数字で表されます。これに関しては別の記事で。。。(笑)
実はこちらはPHPを使う理由という記事で使用しているPHPへの命令です。
0を日曜日として始まり、6が土曜で順番になっています。実行すると実行した曜日で出力されるはずです。
このコードの実行結果は以下のようになります。
実行日が月曜なので月曜の出力です。
まとめ
PHPの条件式を2記事投稿しました。
if文でもswitch文でも条件分岐なのでどちらを利用しても構いません。
比較的if文の方が利用頻度が高いです。複数条件分岐があり、たくさんの条件で処理を分けたい場合にswitch文を利用しましょう。
タグ
-
前の記事
PHPの条件式(if文)
-
次の記事
PHPのループ処理(for&while)