PHP | switch()のサンプルコード 複数のcaseや比較演算子や配列を使った条件分岐など

PHP,PHP 条件分岐

PHP

PHPで使える条件分岐文のひとつswitch()の基本的な使い方や、複数のcaseを指定する方法や、配列や比較演算子を使った条件分岐方法などをサンプルコードで紹介しています。

switch()の基本的なサンプルコード

switch()で使われる処理コードは以下のものがあります。

case条件式、値のみの記述の場合、完全一致
defaultすべてのcaseに当てはまらなかった場合の処理
breakcaseの条件式に当てはまった場合やdefaultでswitchから抜ける

switch()の基本的なサンプルコード

$value = 'banana';

switch ($value) {
	case 'apple':
		echo 'リンゴです。';
		break;
	case 'banana':
		echo 'バナナです。';
		break;
	case 'peach':
		echo 'モモです。';
		break;
	default:
		echo 'どれでもありません。';
		break;
}

//バナナです。

上記サンプルコードでは、変数「$value」の値が「’banana’」となっており、case「’apple’」には条件一致せず、次のcase「’banana’」に条件一致する為、その処理を行う。
処理の終わりに「break」が記述されていますので、その後switch文の処理を抜けます。

複数のcaseを同じ処理に指定する

「break」を記述しなかった場合、続けてswitch文の処理は継続されますので、複数のcaseを同じ処理に指定する事が可能になります。

以下の例だと「’peach’」だけでなく「’apple’」と「’banana’」も処理の対象となります。

$value = 'banana';

switch ($value) {
	case 'apple':
	case 'banana':
	case 'peach':
		echo 'フルーツです。';
		break;
	case 'carrot':
	case 'retas':
	case 'cabbage':
		echo '野菜です。';
		break;	default:
		echo 'フルーツでも野菜でもありません。';
		break;
}

//フルーツです。

caseに比較演算子を使う

caseには比較演算子を使った比較分岐も実装する事が可能です。

$value = 100;

switch ($value) {
	case $value > 50:
		echo '50より大きい';
		break;
	case $value <= 50:
		echo '50か50より小さい';
		break;
	default:
		break;
}

//50より大きい

andやorを使った条件式も指定可能です。

$value = 30;

switch ($value) {
	case $value > 50 && $value <= 100:
		echo '50より大きく100より小さい';
		break;
	case $value > 0 && $value <= 50:
		echo '0より大きく50より小さい';
		break;
	default:
		echo '0から100までの数値ではない';
		break;
}

//0より大きく50より小さい

switch()で配列を使う

caseの条件式に配列や連想配列を使う事も可能です。

下記のサンプルコードでは、単純に一致しているかを指定していますが順番も完全一致する必要があるので実装時に使える機会はなさそうですが、その他関数や比較演算子を使えば用途はあるかもしれません。

$value = ['apple', 'banana'];

switch ($value) {
	case ['apple', 'banana']:
		echo '配列Aと一致';
		break;
	case ['peach', 'orange ']:
		echo '配列Bと一致';
		break;
	default:
		echo '一致する配列はありませんでした。';
		break;
}

//配列Aと一致

PHP,PHP 条件分岐

Posted by Yousuke.U