「switch」の使い方です。
switchは()の中身によって実行する処理を変えることができる関数です。
下記のように1つの変数をif..elseifで何度も判定する場合、switchを使用した方が可読性が高いと思います。
<?php
$x = 20;
if($x == 10){
echo "変数xの中身は10です";
}else($x == 20){
echo "変数xの中身は20です";
}elseif($x == 30){
echo "変数xの中身は30です";
}else{
echo "変数xの中身は10~30ではありません。";
}
?>
上記をswitchで書くと下記になります。
<?php
$x = 20;
switch($x){
case 10:
echo "変数xの中身は10です。";
break;
case 20:
echo "変数xの中身は20です。";
break;
case 30:
echo "変数xの中身は30です。";
break;
default:
echo "変数xの中身は10~30ではありません。";
break;
}
?>
「case 値:」の値が()の中身と等しければその後に書かれている処理を行い、違う場合は次の「case 値:」の値と比較する・・・ということを繰り返します。もちろん、処理は複数行書いても大丈夫です。
等しいものがない場合は「default:」の後に書かれている処理を行います。
慣れないと「break;」を書き忘れてしまいがちですが、その場合、等しい値があり処理が実行されたにもかかわらず、次の「case 値:」との比較を繰り返しますので、意図しない結果になることもあります。気をつけましょう。
(あえてbreakを書かないという使用方法もあります)
switchを使用する上でのもう一つの注意点は()の中身と「case 値:」の値との比較が「==」で行われるということです。
データ型まで厳密に比較する必要がある場合は、switchの使用を避けた方がいいでしょう。