编辑这个页面须要登录或更高权限!

PHP Switch…Case 语句

在本教程中,您将学习如何使用switch-case语句来测试或评估PHP中具有不同值的表达式。

PHP If…Else Vs Switch…Case

switch-case语句是if-elseif-else语句的代替方法,它执行几乎相同的操作。 switch-case语句针对一系列值测试变量,直到找到匹配项,然后执行与该匹配项对应的代码块。

switch(n){
    case label1:
        // 要执行的代码,当 n=label1
        break;
    case label2:
        // 要执行的代码,当 n=label2
        break;
    ...
    default:
        // 要执行的代码,当n与所有标签都不匹配
}

看以下示例,示例每天显示不同的消息。

<?php
$today = date("D");
switch($today){
    case "Mon":
        echo "今天是星期一。 打扫你的房子。";
        break;
    case "Tue":
        echo "今天是星期二。 买一些食物。";
        break;
    case "Wed":
        echo "今天是星期三。 去看医生。";
        break;
    case "Thu":
        echo "今天是星期四。 修理你的车。";
        break;
    case "Fri":
        echo "今天是星期五。 今夜开派对。";
        break;
    case "Sat":
        echo "今天是星期六。是看电影的时间。";
        break;
    case "Sun":
        echo "今天是星期天。休息一下。";
        break;
    default:
        echo "当天没有可用信息。";
        break;
}
?>
测试看看‹/›

switch-case语句与if-elseif-else语句的不同之处在于一个重要方面。 switch语句逐行执行(即逐条语句),一旦PHP找到一个条件表达式为true的case语句,它不仅执行与case语句相对应的代码,而且还将执行所有后续case语句,直到该语句结束为止。 会自动切换switch的块。

为了防止这种情况,请在每个case块的末尾添加一个break语句。 break语句告诉PHP一旦执行了与第一个真实case相关的代码,便跳出switch-case语句块。