PHP switch~caseが具体例で初心者でも即わかる!if文との違いも

PHP switch~caseが具体例で初心者でも即わかる!if文との違いも

今回はプログラミング言語PHPのswitch文(switch~case)について、Web開発経験のある筆者が解説します。

PHP switch~caseを使えば、「条件に応じて処理を分ける」ということが可能になります。

本記事では、PHP初心者向けに、switch~caseの書き方、具体例(数値と文字列)、switch~caseとif文の違いについて解説します。

※if文については、PHP if文について解説した記事をご覧ください。

読み終える頃にはPHP switch~caseが理解できているでしょう。ぜひ最後までご覧ください。

 

PHP switch~caseの書き方

プログラミング言語の処理で「条件に応じて処理を分ける」ということをしたいときには、「if文」と「switch文」で実現が可能です。今回は、switch文の書き方を見ていきましょう。

※if文については、PHP if文について解説した記事をご覧ください。

switch文の構文は以下のとおりです。

変数で値を受け取り、その変数と一致するcaseの値するものがあれば、そのcaseブロックに書かれた処理が実行されます。

該当するcaseがない場合は、defaultに書かれた処理が実行されます。また、case値に指定できる数字(int)または文字列(string)です。

break文・・・breakが実行されるとswitch文から抜ける処理になります。swich文では、基本的にはbreak文を書くことを心がけましょう。break文を書かないと後続のcase句が実行されてしまうため意図しない結果が返されてしまうことがあります。

もちろん、break文を書かない処理(フォールスルー)を意図して書く時もあります。しかし、多くの場合、意図してbreak文を書いていないのかなど判断が難しくなります。それによって、可読性が下がり管理しにくくなってしまう可能性があります。

 

\文字より動画で学びたいあなたへ/

Udemyで講座を探す >

PHP switch~caseの具体例(数値)

先程、紹介したswitch文の構文を使って、簡単なプログラムを書いてみましょう。

次のサンプルコード1は、サイコロを振って、1がでた場合は金賞,2の場合は銀賞,3の場合は銅賞,それ以外の値は参加賞と出力するプログラムです。

変数$valで受け取った数値(1)を受け取ると”値は1:金賞です。”が実際に出力されています。

 

PHP switch~caseの具体例(文字列)

先程はcaseに数値を指定して、switch文を書きました。指定できる値は、数値以外にも文字列が使えます。それでは、実際にサンプルコードを見て行きましょう。

次のサンプルコード2は、指定された文字列(英語)が入力されると日本語訳を返します。(例:apple →リンゴ.banana→バナナ)

caseの中で文字列が指定されており、実際にswitch文で文字列が使用できることがわかります。

 

PHP switch~caseとif文との違いとは?

条件分岐を処理するするものとしてはif文とswitch文があります。分岐の処理としては、同じことを実現することができます。では、どのような使い分けが必要なのでしょうか。

if文とswitch文の使い分けのポイント

・単純な2分岐であれば、if文を使う

・多分岐(3分岐)以上であればswitch文を使う

多分岐をif文で書いているのであれば、switch文で見やすく書けるかを検討してみましょう。

switch文にすることによってソースコードが管理しやすくなるかもれませんよ。パフォーマンスに関してですが、多分岐の処理であれば、switch文のほうが処理が早いとされています。