PHP switch文のサンプル

PHPのswitch文のサンプルです。

確認環境
・PHP 7.2.8

目次

switch文

switch文のサンプルです。

<?php

$a = "2";

switch($a){
	case "1":
		print "1つめ";
		break;
	case "2":
		print "2つめ"; //2つめが出力される
		break;
	default:
		print "3つめ";
}
?>

3行目は、変数aに値をセットしています。
5行目からswitch文が始まります。
9行目のcase "2"は変数aの値と一致するのでその配下の処理が実行されます。
10行目の処理が実行されます。
11行目のbreakでswitch文を抜けます。

構文

switch(条件){
  case 値 :
    処理
    break;
   ・・・
  default:
    処理
    break;
}
  • 条件の値とcaseの値が一致すれば、配下の処理が実行されます。
  • breakでswitch文を抜けます。breakがないと下の判定(case/default)に行ってしまいます。
  • defaultは、条件の値がどのcaseの値にも一致しない時に実行されます。省略可能ですが書いたほうが良いです。
  • 以下はPHPマニュアルのswitch文のリンクです。
    https://www.php.net/manual/ja/control-structures.switch.php

breakがない場合

breakがない場合のサンプルです。

<?php

$a = "1";

switch($a){
	case "1":
		print "1つめ"; // 1つめが出力される

	case "2":
		print "2つめ"; //2つめが出力される
		break;
	default:
		print "3つめ";
}
?>

8行目は、breakがありません。
6行目のcase "1"の処理の後、9行目のcase"2"の処理も実行されます。
フォールスルー(fall through/落ちる)と呼ばれます。
breakを書き忘れたのかわかりづらいので使用しないほうが良いです。

switch文の中でif文を使用する

switch文の中でif文を使用するサンプルです。

<?php

$a = 3;

switch($a){
	case 3:
		if ($a % 2 == 0) {
			print("偶数");
		} else {
			print("奇数"); // 奇数が出力される
		}
		break;
	default:
		print "その他";
}
?>

7行目はswitch文の中のcaseの後にif文を使用しています。
%は、割り算の余りを求めます。

caseの後に条件を追加する

caseの後に条件を追加するサンプルです。

<?php

$a = 8;

switch($a){
	case $a < 5:
		print("1つめ");
		break;
	case $a < 10:
		print("2つめ");// 2つめが出力される
		break;
	default:
		print "3つめ";
}
?>

6,9行目はcaseの後で比較(<)を行っています。

関連の記事

PHP if文のサンプル
PHP while文とdo…while文のサンプルのサンプル

△上に戻る