PHPSwitchCase でデフォルトを使用

Subodh Poudel 2023年1月30日
  1. PHP switch ケース
  2. PHP の switch-case ステートメントで default ステートメントを使用する
  3. PHP の switch-casebreak ステートメントなしで default ステートメントを使用する
PHPSwitchCase でデフォルトを使用

PHP で switchcase ステートメントを紹介します。スイッチケースのさまざまなシナリオと、コードがケースを処理する方法について説明します。次に、PHP の switchcase ステートメントでの break ステートメントとその使用法を紹介します。

その前に一致するケースが存在する場合、default ケースが実行されるかどうかを確認します。このメソッドでは、結果を確認するために break ステートメントを削除します。

PHP switch ケース

switch-case ステートメントは条件付きであり、if-elseif-else ステートメントの代替です。このステートメントは、正しい一致が見つかるまで変数をチェックし、一致したケースに従って実行します。switch ステートメントを使用して変数をテストし、case ステートメントを使用してテストするケースを指定できます。case ステートメントの後にコードを記述して、case が一致した場合にコードを実行します。

switch-case ステートメントは、if-elseif-else ステートメントと 1つの特徴的な点で異なります。if-elseif-else ステートメントは、条件が真になった後に唯一のコードを実行し、条件付きテストを中止します。ただし、switch case ステートメントでは、すべてのケースがテストされ、対応する各コードが実行されます。問題を取り除くために、break ステートメントを使用します。ケースが一致し、対応するコードが実行されると、実行は break ステートメントになり、条件付きチェックは中止されます。したがって、各ケースの最後に break ステートメントを記述します。

たとえば、変数 $favfood を作成し、値 pizza を割り当てます。括弧内の変数 $favfood を使用して switch ステートメントを記述します。switch ステートメント内に case ステートメントを記述し、case momocase "momo":として指定します。値の後のコロンを見逃さないでください。ケースの下にある echo ステートメントを使用して、Your favorite food is momo!というメッセージを表示します。メッセージを表示した後、break ステートメントを記述します。同様に、momo の場合と同じように spaghettipizza のケースを記述し、それに応じてメッセージを表示し、それぞれのケースの break ステートメントを記述します。

以下の例は、Your favorite food is pizza!というメッセージを表示します。変数 $favfood が値 pizza を保持しているためです。まず、ケース momo をテストします。一致しないため、実行はケース spaghetti に向かって移動します。このケースも一致しませんが、ピザのケースは一致します。次に、対応するメッセージを表示し、break ステートメントを実行します。break ステートメントは、switch case ステートメント全体を終了し、それ以上のコードが実行されないようにします。
サンプルコード:

# php 7.*
<?php
$favfood = "pizza";
switch ($favfood) {
    case "momo":
        echo "Your favorite food is momo!";
    break;
    case "spaghetti":
        echo "Your favorite food is spaghetti!";
    break;
    case "pizza":
        echo "Your favorite food is pizza!";
    break;
    case "burger":
        echo "Your favorite food is burger!";
    break;
}
?>

出力:

Your favorite color is pizza!

PHP の switch-case ステートメントで default ステートメントを使用する

switch-case ステートメントの default ステートメントを使用して、上記で指定されたケースを満たさないケースを示すことができます。つまり、どのケースにも一致しない場合、default ステートメントが実行されます。すべてのケースの最後に default ステートメントを記述します。上記の例では、デフォルトのケースはありません。上記のケースのいずれも一致しない場合、コードは何も出力しません。したがって、default ステートメントは残りのケースに対応します。

最初のコード例を変更して、default ステートメントの使用法を説明できます。たとえば、値 spaghetti を変数 $favfood に割り当てます。ケース spaghetti のコードブロックを削除し、デフォルトのステートメントを追加します。default ステートメント内に、We could not find your favorite food というメッセージを表示します。メッセージの後に break ステートメントを記述します。

以下の例では、指定されたケースのいずれも一致しません。したがって、コントロールは default ステートメントに到達します。次に、対応するメッセージを表示します。spaghetti のコードブロックを削除しなかった場合、デフォルトのステートメントは実行されませんでした。Your favorite food is spaghetti!というメッセージが表示されます。break ステートメントは、ケースが一致した場合、条件付きチェックを中止します。

サンプルコード:

#php 7.x
<?php
$favfood = "spaghetti";
switch ($favfood) {
    case "momo":
        echo "Your favorite food is momo!";
    break;
    case "pizza":
        echo "Your favorite food is pizza!";
    break;
    case "burger":
        echo "Your favorite food is burger!";
    break;
    default:
        echo "We could not find your favorite food";
    break;
}
?>

出力:

We could not find your favorite food

PHP の switch-casebreak ステートメントなしで default ステートメントを使用する

break ステートメントを使用せずに、switch ケースで default ステートメントを使用して、default ブロックがその前に一致するケースを実行するかどうかを確認できます。デモ用に上記のサンプルコードを少し変更できます。たとえば、$favfoodmomo の値に割り当てます。momopizzaburgerdefault のケースとコードブロックをそれぞれ記述します。どのコードブロックにも break ステートメントを記述しないでください。

以下の例では、実行はすべてのケースを通過し、すべてのメッセージを表示します。以前に一致するケースがあったとしても、デフォルトのブロックは、一致するケースが続くブロックとともに実行されます。これは、break ステートメントを省略したためです。

サンプルコード:

#php 7.x
<?php
$favfood = "momo";
switch ($favfood) {
    case "momo":
        echo "Your favorite food is momo!"."<br>"; 
    case "pizza":
        echo "Your favorite food is pizza!"."<br>";
    case "burger":
        echo "Your favorite food is burger!"."<br>";
    default:
        echo "We could not find your favorite food"."<br>"; 
}
?>

出力:

Your favorite food is momo! 
Your favorite food is pizza! 
Your favorite food is burger! 
We could not find your favorite food.
著者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn