「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の使用を避けた方がいいでしょう。