PHPでswitch文を使う方法【PHP初心者向け】

PHPの条件分岐で1番基本となるif文をPHPでif文を使う方法【PHP初心者】で解説しました。

あわせて読みたい
PHPでif文を使う方法【PHP初心者】 PHPに限らず、プログラミングコードを書く上で必ず抑えておきたいのが条件分岐です。プログラムでは条件分岐を必ず使います。条件分岐をマスターできれば書けるコードの...

elseやelseifを使うことによって多岐分岐の条件が書けるようになりましたが、条件が多くなれば、なるほどコードが読みにくく見にくくなります。

そのような条件が多い時にはswitch文を使ってシンプルなコードにしていきましょう。

目次

switch文

switch文はswitch(式)の式の部分とcaseの値が一致した時にcaseの処理を実行する文です。一致した場合はbreakで処理が終了します。どのcaseの値にも一致しない場合はdefaultに書いている処理が実行されるようになっています。

switch(式){
  case 値0:
    式と値0の値が一致した時に実行する処理;
    break;

  case 値1:
    式と値1の値が一致した時に実行する処理;
    break;

  case 値2:
    式と値2の値が一致した時に実行する処理;
    break;

 default:
    どのcaseの値にも一致しなかった時に実行する処理;
    break;
}

こちらがswitch文の基本文となります。if文と比べるとシンプルで読みやすいコードになっていると思います。

$num = 1;
switch($num){
	case 0:
		echo "0です。";
		break;
	case 1:
		echo "1です。";
		break;
	case 2:
		echo "2です。";
		break;
	default:
		echo "0,1,2に一致しません。";
		break;
}

上のサンプルコードではあらかじめ$numという変数に1を入れています。switch文で条件を回し、caseの値が1である時に「1です。」という処理が実行されています。

$num = 2;
switch($num){
	case 0:
		echo "0です。";
		break;
	case 1:
		echo "1です。";
		break;
	case 2:
		echo "2です。";
		break;
	default:
		echo "0,1,2に一致しません。";
		break;
}

$numに入っている数字が2の場合は、「2です。」という処理が実行されます。

$num = 100;
switch($num){
	case 0:
		echo "0です。";
		break;
	case 1:
		echo "1です。";
		break;
	case 2:
		echo "2です。";
		break;
	default:
		echo "0,1,2に一致しません。";
		break;
}

$numに100という数字が入っていた場合は、「0,1,2に一致しません。」という処理が実行されます。

switch文を使う時の注意点

break命令

caseのブロックの最後にはbreakをつけます。これはbreak命令と呼び、現在のブロックから抜けさせるための命令になります。breakを書き忘れると、次のcaseも同時に実行・処理されてしまいます。

$num = 0;
switch($num){
	case 0:
		echo "0です。";
     //breakが抜けている
	case 1:
		echo "1です。";
		break;
	case 2:
		echo "2です。";
		break;
	default:
		echo "0,1,2に一致しません。";
		break;
}

//実行結果は「0です。1です。」となる

case 値:(コロン)

初心者にありがちなミスに「case 値;」と書いてしまう人が多いですが、「case 値:」です。;(セミコロン)ではなく、:(コロン)です。セミコロンで書いてしまうとエラーが出ます。間違わないようにご注意ください。

次回のレッスンは配列と連想配列

次回は配列と連想配列について紹介していきます。

あわせて読みたい
PHPで配列と連想配列を使う方法【PHP初心者向け】 【PHPの基本】PHPを始める上で抑えておきたい5つのポイントで変数について解説しました。変数では1つの変数に対して1つの値しか扱うことできません。 https://study-php...
よかったらシェアしてね!

この記事を書いた人

コメント

コメントする

目次
閉じる