在 PHP Switch Case 中使用預設值

Subodh Poudel 2023年1月30日
  1. PHP switch 案例
  2. 在 PHP 中的 switch-case 語句中使用 default 語句
  3. 在 PHP switch-case 中使用 default 語句而不使用 break 語句
在 PHP Switch Case 中使用預設值

我們將介紹 PHP 中的 switch case 語句。我們將描述 switch case 的不同場景以及程式碼如何處理 case。然後我們將介紹 break 語句及其在 PHP 中 switch case 語句中的使用。

如果在它之前存在匹配的案例,我們將檢查 default 案例是否執行。在此方法中,我們將刪除 break 語句以檢查結果。

PHP switch 案例

switch-case 語句是有條件的,可以替代 if-elseif-else 語句。該語句檢查變數的幾種情況,直到找到正確的匹配項並根據匹配的情況執行它。我們可以使用 switch 語句來測試變數,並使用 case 語句來指定要測試的案例。我們在 case 語句之後編寫一段程式碼,以便在 case 匹配時執行程式碼。

switch-case 語句與 if-elseif-else 語句以一種獨特的方式不同。if-elseif-else 語句在條件為真後執行唯一的程式碼並中止條件測試。但是,在 switch case 語句中,每個 case 都會被測試,並且每個對應的程式碼都會執行。為了解決這個問題,我們使用 break 語句。當 case 匹配並且相應的程式碼執行時,執行到 break 語句,條件檢查中止。因此,我們在每個 case 的末尾寫上 break 語句。

例如,建立一個變數 $favfood 併為其分配值 pizza。用括號中的變數 $favfood 編寫一個 switch 語句。在 switch 語句中,編寫 case 語句並提供 case momo 作為 case "momo":。不要錯過值後面的冒號。使用案例下方的 echo 語句並顯示訊息 Your favorite food is momo!。在顯示訊息後編寫 break 語句。類似地,為 spaghettipizza 編寫案例,就像你為 momo 所做的那樣,相應地顯示訊息,併為每個案例編寫 break 語句。

下面的示例顯示訊息 Your favorite food is pizza!因為變數 $favfood 儲存了值 pizza。首先,測試案例 momo。由於它不匹配,執行移向案例 spaghetti。這個 case 也不匹配,但是 case pizza 匹配。然後它顯示相應的訊息並執行 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。刪除 case 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-case 中使用 default 語句而不使用 break 語句

我們可以在 switch case 中使用 default 語句而不使用 break 語句來檢查 default 塊是否會在它之前執行匹配的 case。我們可以稍微修改上面的示例程式碼以進行演示。例如,將 $favfood 分配給 momo 的值。分別為 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