在 PHP Switch Case 中使用預設值

Subodh Poudel 2023年1月30日 PHP PHP Switch
  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.
Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: 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