広告 PHP入門

【PHP入門】条件分岐(switch文)

はじめに

前回の記事では、PHPのbreak文とcontinue文について紹介しました。

本記事では、switch文を使った条件分岐について紹介します。

switch文を使った条件分岐

switch文とは、if文と同じように条件分岐を行う制御文です。if文は else-if文を使うことで複数の条件式を書くことができますが、switch文の条件式は1つです。

1つの式に対して、式の値が case のどれにあてはまるか確認します。あてはまる case があれば、その case の処理を実行し、caseのどれにもあてはまらないときは、defaultがある場合、defaultの処理を実行します。(※defaultは書かなくてもよい)

分岐処理が多くなると if文では読みにくくなるため、switch文を使うことで処理を簡潔にすることができます。

スポンサーリンク

switch文の書き方は次のとおりです。

switch文の書き方

switch ( 式 )

{

case 値1

// 「式 = 値1」のときに実行される処理

break;

case 値2:

// 「式 = 値2」のときに実行される処理

break;

default:

// 式の値が上記のどれにも一致しないときに実行される処理

break;

}

switch文の使用例

それでは、実際にPHPのプログラムでswitch文を使用した条件分岐を紹介します。

次の例では、変数「$value」の値によってswitch文で処理を分岐しています。

[switch文の例]

<?php

$value = "01";
        
switch ($value) {
    case "01":
        print("01の処理");
        break;
        
    case "02":
        print("02の処理");
        break;
        
    default:
        print("デフォルトの処理");
        break;
}

?>

[実行結果]

01の処理

switch文の注意点

switch文を書くときに気をつけることは break文を忘れずに記述することです。break文を書き忘れると、一致したcase以降の処理をすべて実行します。

なんでbreakを省略する書き方があるんですか?
case文にbreakを記述することは強制ではなく、case文の処理を続けて実行したいときには、breakを省略することができます。このように意図的にbreakを省略する記法を フォールスルー(fall through)といいます。

 

以下は、break文のないswitch文の例です。

  1. 変数「$value」はcase "02"に一致しているので、case "02"の処理を実行
  2. case "02"の処理にはbreak文がないので switch文は終了せず、そのまま case "02"の下に記述されている defaultの処理を実行

[break文を書いてない場合の例]

<?php

$value = "02";
        
switch ($value) {
    case "01":
        print("01の処理<br />");
        
    case "02":
        print("02の処理<br />");
        
    default:
        print("デフォルトの処理");
}

?>

[実行結果]

02の処理
デフォルトの処理

終わりに

本記事では、PHPのswitch文を使った条件分岐について紹介しました。

次回の記事では、PHPの関数について紹介します。

helpful