- PHP 教程
- PHP - 教程
- PHP - 简介
- PHP - 安装
- PHP - 历史
- PHP - 功能
- PHP - 语法
- PHP - Hello World
- PHP - 注释
- PHP - 变量
- PHP - echo 语句和 print 语句
- PHP - var_dump() 函数
- PHP - $ 和 $$ 变量
- PHP - 常量
- PHP - 魔术常量
- PHP – 数据类型
- PHP - 类型转换
- PHP - 类型戏法
- PHP - 字符串
- PHP - 布尔值
- PHP - 整数
- PHP - 文件和I/O
- PHP – 数学函数
- PHP - Heredoc & Nowdoc
- PHP - 复合类型
- PHP - 文件包含
- PHP - 日期和时间
- PHP - 标量类型声明
- PHP - 返回类型声明
- PHP 运算符
- PHP - 运算符类型
- PHP - 算术运算符示例
- PHP - 比较运算符示例
- PHP - 逻辑运算符示例
- PHP - 赋值运算符示例
- PHP – 字符串运算符
- PHP – 数组运算符
- PHP – 条件运算符示例
- PHP - Spread 运算符
- PHP - Null 合并运算符
- PHP - Spaceship 运算符
- PHP 控制语句
- PHP – 决策
- PHP - If…Else 语句
- PHP - Switch 语句
- PHP – 循环类型
- PHP - For 循环
- PHP - Foreach 循环
- PHP - While 循环
- PHP - do...While 循环
- PHP - Break 语句
- PHP - Continue 语句
- PHP 数组
PHP - Switch 语句
PHP 中的 switch 语句可以被视为一系列 if...else 语句。假设您需要比较具有许多不同值的表达式或变量,并根据它等于的值执行不同的代码。在这种情况下,您将使用多重含义 if...elseif...else 构造。
但是,这样的结构会使代码非常混乱且难以遵循。为了简化此类代码,您可以在 PHP 中使用 switch case 结构,它提供了一种更紧凑的替代方案来避免 if..elseif..else 代码。
以下 PHP 脚本使用 if elseif 语句 -
if ($x == 0) {
echo "x 等于 0";
} elseif ($x == 1) {
echo "x 等于 1";
} elseif ($x == 2) {
echo "x 等于 2";
}
您可以使用 switch case 语句获得相同的结果,如下所示 -
switch ($x) {
case 0:
echo "x 等于 0";
break;
case 1:
echo "x 等于 1";
break;
case 2:
echo "x 等于 2";
break;
}
switch 语句后跟一个表达式,该表达式将依次与每个 case 子句的值进行比较。如果发现表达式与任何 case 匹配,则执行相应的语句块。
- switch 语句逐行执行大括号内的语句。
- 如果找到一个 case 语句,其表达式的计算结果与 switch 表达式的值匹配,PHP 就会开始执行这些语句,直到 switch 块结束,或者第一次遇到 break 语句。
- 如果你没有在 case 的语句列表的末尾写 break 语句,PHP 将继续执行以下 case 的语句。
例子
尝试通过删除 breaks 来运行上述代码。如果 x 的值为 0,您将发现输出包括 “x equals 1” 和 “x equals 2” 行。
<?php
$x=0;
switch ($x) {
case 0:
echo "x 等于 0 \n";
case 1:
echo "x 等于 1 \n";
case 2:
echo "x 等于 2";
}
?>
它将产生以下输出 -
等于
0x
等于
1x
等于
2因此,确保以 break 语句结束每个 case 块非常重要。
Switch 默认情况
一种特殊情况是默认情况。此大小写匹配其他大小写不匹配的任何内容。使用 default 是可选的,但如果使用,则必须是大括号内的最后一个大小写。
您可以合并多个 case 来模拟多个与 or 运算符组合的逻辑表达式。
<?php
$x=10;
switch ($x) {
case 0:
case 1:
case 2:
echo "x介于0和2之间 \n";
break;
default:
echo "x小于0或大于2";
}
?>
要比较的值在 case 子句中给出。该值可以是数字、字符串,甚至是函数。但是,不能将比较运算符(<、> == 或 !=)用作 case 子句的值。
您可以选择在 case 子句使用分号而不是冒号。如果未找到匹配的 case,并且也没有 default 分支,则不会执行任何代码,就像没有 if 语句为 true 一样。
switch-endswitch 语句
PHP 允许通过使用 switch-endswitch 语句分隔 switch 结构来使用替代语法。以下版本的 switch case 是可接受的。
<?php
$x=0;
switch ($x) :
case 0:
echo "x等于0";
break;
case 1:
echo "x等于1 \n";
break;
case 2:
echo "x等于2 \n";
break;
default:
echo "以上都没有";
endswitch
?>
switch...Case 使用 break 语句
显然,您无需编写 break 来终止默认 case,它是 switch 构造中的最后一个 case。
例请看下面的例子 -
<?php
$d = date("D");
switch ($d){
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 "不知道今天是哪一天?";
}
?>
它将产生以下输出 -