PHP switch...case

在本教程中,你將學習如何使用 switch-case 語句在 PHP 中測試或評估具有不同值的表示式。

PHP if...else vs switch...case

switch-case 語句是 if-elseif-else 語句的替代語句,它幾乎完全相同。switch-case 語句針對一系列值測試變數,直到找到匹配項,然後執行與該匹配項對應的程式碼塊。

switch (n){ case label1: // Code to be executed if n=label1 break; case label2: // Code to be executed if n=label2 break; ... default : // Code to be executed if n is different from all labels } 

請考慮以下示例,該示例顯示每天的不同訊息。

<?php
$today = date("D");
switch($today){
    case "Mon":
        echo "Today is Monday. Clean your house.";
        break;
    case "Tue":
        echo "Today is Tuesday. Buy some food.";
        break;
    case "Wed":
        echo "Today is Wednesday. Visit a doctor.";
        break;
    case "Thu":
        echo "Today is Thursday. Repair your car.";
        break;
    case "Fri":
        echo "Today is Friday. Party tonight.";
        break;
    case "Sat":
        echo "Today is Saturday. Its movie time.";
        break;
    case "Sun":
        echo "Today is Sunday. Do some rest.";
        break;
    default:
        echo "No information available for that day.";
        break;
}
?>

switch-case 語句與 if-elseif-else 在一個重要方面與語句不同。 switch 語句逐行執行(即語句逐語),一旦 PHP 找到一個 case 計算結果為 true 的語句,它不僅會執行與該 case 語句對應的程式碼,還會自動執行所有後續 case 語句直到該 switch 塊結束。

為了防止這種情況,在每個 case 塊的末尾新增一個 break 語句。該 break 語句告訴 PHP 在 switch-case 執行與第一個為 Truecase 相關聯的程式碼後跳過後面的語句塊。