PHP 8 switch 條件判斷語句

PHP 8 中的 switch 陳述式是一種控制結構,用來根據不同的條件執行不同的程式碼區塊。雖然 PHP 8 沒有對 switch 陳述式做出顯著的語法改變,但理解它的基本用法和最佳實踐仍然非常重要。

以下是 switch 陳述式的基本結構和使用範例:

switch (expression) {
    case value1:
        // 當 expression 等於 value1 時執行的程式碼
        break;
    case value2:
        // 當 expression 等於 value2 時執行的程式碼
        break;
    // 可以有多個 case 區塊
    default:
        // 當 expression 不等於任何一個 case 的值時執行的程式碼
}

範例說明

假設我們有一個變數 $day,我們希望根據這個變數的值來輸出相應的星期幾名稱:

<?php
$day = 3;

switch ($day) {
    case 1:
        echo "星期一";
        break;
    case 2:
        echo "星期二";
        break;
    case 3:
        echo "星期三";
        break;
    case 4:
        echo "星期四";
        break;
    case 5:
        echo "星期五";
        break;
    case 6:
        echo "星期六";
        break;
    case 7:
        echo "星期日";
        break;
    default:
        echo "無效的星期";
        break;
}
?>

重要注意事項

  1. break 陳述式: 每個 case 區塊通常會以 break 陳述式結束,這樣當匹配到某個 case 後,就會跳出 switch 結構,避免執行後續的 case 區塊。
  2. default 區塊: default 是可選的,但建議在可能的情況下提供 default 區塊來處理未預期的值。
  3. 嚴格比較: switch 使用寬鬆比較 (==),這意味著它不會區分數值型與字串型的差異,如果需要嚴格比較 (===),需要手動處理,也可以使用 PHP 8 新推出的 match 表達式來處理。

進階用法

在 PHP 8 中,還可以利用新的 match 表達式來做出類似 switch 的功能,但語法更簡潔且支援嚴格比較 (===):

<?php
$day = 3;

echo match ($day) {
    1 => "星期一",
    2 => "星期二",
    3 => "星期三",
    4 => "星期四",
    5 => "星期五",
    6 => "星期六",
    7 => "星期日",
    default => "無效的星期",
};
?>

match 表達式更安全,因為它使用嚴格比較 (===) 並且不需要 break 陳述式,這樣可以減少因忘記 break 而產生的錯誤。

總結

PHP 8 中的 switch 陳述式仍然是處理多條件分支的一種常用方法,理解其基本用法和注意事項,並在適當的情況下考慮使用新的 match 表達式,可以使你的程式碼更加簡潔和可靠。

延伸閱讀

© Copyright wibibi.com 網頁設計教學百科 基礎的網頁設計規劃、資料庫與程式設計 Since 2012