switch構文

PHPでは条件分岐という処理ができます。条件分岐を行うには「if else」や「switch」などの分岐処理があります。swith文は条件を指定して、それがcaseの後の値に合えば処理をその後も続けて実行します。if文の場合には、ブロックを使って処理をどこからどこまで実行するのかが、わかるようになっていますが、switchの場合はceseごとにブロックは使用されず順序処理を実行していきます。それはbreakに達するまでです。なお、breakを付け忘れると、breakかswicthの最後の文まで実行し続けてしまうことになります。breakがついているか否か、必ずチェックしましょう。なお、breakの他にもORという条件を付与することで分岐することもできます。

なお、switch文ではif同様比較演算子を使った「以上、以下」という条件分岐も可能です。>(大なり)、<(小なり)などの比較演算子と呼ばれる記号を使った条件分岐もできます。

覚えておきたことはswitch文は緩やかな比較となっているということです。そのため、型まで厳密に比較したりはしません。もし、厳密に比較したい場合には、①caseで===を使って厳密に型まで比較対象とする。②switch文の最初のカッコ内にtrueと書いて対応する。などによって、厳密に比較することになります。

switch文は条件が1度だけ評価されます。そして、その結果が各case文と比較されるのです。そのため、条件が再度評価されるelseifの文に比べて使用する条件が単純な比較処理よりも複雑な処理を行ったり、重い繰り返し処理を行うケースがあり、switchの方がelseif文に比べてより速い処理ができる可能性があります。