本記事では、PHPでswitch文の使い方・書き方について解説しています。
PHPの学習におすすめ書籍
独習PHP 第4版
メリット
- PHPの基本構文からクラス・データベース連携・セキュリティまで学べる
- PHPによるWebアプリ開発の基礎・基本テクニックを学べる
ポチップ
先輩くん
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
全プログラマー必見!
変数名/関数名にもう悩まない!
変数名/関数名にもう悩まない!
リーダブルコード
メリット
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次
switch文の使い方・書き方
switch文は等価演算子を使用した条件分岐に特化した命令です。switch文の基本的な使い方は以下のとおりです。
<?php
switch (expression) {
case 'value1':
// expressionとvalue1が一致した時に実行させたい処理を記述
break;
case 'value2':
// expressionとvalue2が一致した時に実行させたい処理を記述
break;
default:
// 全てのcaseに一致しなかった時に実行させたい処理を記述
break;
}
構文解説
- expression:評価したい式(値)をセット
- value1,value2:expressionにセットした式と照合に使用される。一致していればcase句のブロック内に記述された処理を実行する
- break:case句のブロック内に記述された処理が終了することを意味する
- default:全てのcaseに一致しなかった時にブロック内に記述された処理を実行する(省略可能)
実際に、switch文を使用したサンプルコードを用意したので、動作確認してみましょう。
<?php
$scoreRank = 'B';
switch ($scoreRank) {
case 'A':
echo 'とても良い調子です!';
break;
case 'B':
echo 'あと少しです!';
break;
case 'C':
echo '努力が必要です!';
break;
default:
echo 'データがありません。';
break;
}
// 実行結果:あと少しです!
評価したい式(値)に変数$scoreRankをセットします。変数の中はBが代入されているため、switch文はcase句にBがセットされているか上から順に探していきます。今回のサンプルコードでは「case ‘B’」があるので、そのcase句のブロック内に記述されている「echo ‘あと少しです!’」が実行されます。
break;を省略した記述方法
先ほど紹介したサンプルコードで、もし変数$scoreRankの値がBまたはCの場合は努力が必要です!の文字を表示させたいとなった時どうすればよいでしょうか?
<?php
$scoreRank = 'B';
switch ($scoreRank) {
case 'A':
echo 'とても良い調子です!';
break;
case 'B':
echo '努力が必要です!';
break;
case 'C':
echo '努力が必要です!';
break;
default:
echo 'データがありません。';
break;
}
// 実行結果:努力が必要です!
上記のような記述をしても間違いではありませんが、同じ処理を複数回記述するのはあまりよろしくはありません。そのような時はbreak;を記述せずcase句を連続して実行させるフォールスルーと呼ばれる小技を使用します。
<?php
$scoreRank = 'B';
switch ($scoreRank) {
case 'A':
echo 'とても良い調子です!';
break;
case 'B':
case 'C':
echo '努力が必要です!';
break;
default:
echo 'データがありません。';
break;
}
// 実行結果:努力が必要です!
上記のように記述をすることで、if文のOR条件のように変数$scoreRankの値がBまたはCの時に「努力が必要です!」と表示させることが出来ます。