- 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 - 展开运算符
- PHP - 空值合并运算符
- PHP - 比较运算符(太空船运算符)
- PHP 控制语句
- PHP - 决策
- PHP - if…else 语句
- PHP - switch 语句
- PHP - 循环类型
- PHP - for 循环
- PHP - foreach 循环
- PHP - while 循环
- PHP - do…while 循环
- PHP - break 语句
- PHP - continue 语句
- PHP 函数
- PHP - 函数
- PHP - 函数参数
- PHP - 按值传递
- PHP - 按引用传递
- PHP - 默认参数
- PHP - 具名参数
- PHP - 可变参数
- PHP - 返回值
- PHP - 传递函数
- PHP - 递归函数
- PHP - 类型提示
- PHP - 变量作用域
- PHP - 严格类型
- PHP - 匿名函数
- PHP - 箭头函数
- PHP - 可变函数
- PHP - 局部变量
- PHP - 全局变量
- PHP 超全局变量
- PHP - 超全局变量
- PHP - $GLOBALS
- PHP - $_SERVER
- PHP - $_REQUEST
- PHP - $_POST
- PHP - $_GET
- PHP - $_FILES
- PHP - $_ENV
- PHP - $_COOKIE
- PHP - $_SESSION
- PHP 文件处理
- PHP - 文件处理
- PHP - 打开文件
- PHP - 读取文件
- PHP - 写入文件
- PHP - 文件是否存在
- PHP - 下载文件
- PHP - 复制文件
- PHP - 追加文件
- PHP - 删除文件
- PHP - 处理 CSV 文件
- PHP - 文件权限
- PHP - 创建目录
- PHP - 列出文件
- 面向对象的 PHP
- PHP - 面向对象编程
- PHP - 类和对象
- PHP - 构造函数和析构函数
- PHP - 访问修饰符
- PHP - 继承
- PHP - 类常量
- PHP - 抽象类
- PHP - 接口
- PHP - 特性
- PHP - 静态方法
- PHP - 静态属性
- PHP - 命名空间
- PHP - 对象迭代
- PHP - 封装
- PHP - final 关键字
- PHP - 重载
- PHP - 克隆对象
- PHP - 匿名类
- PHP Web 开发
- PHP - Web 概念
- PHP - 表单处理
- PHP - 表单验证
- PHP - 表单邮件/URL
- PHP - 完整表单
- PHP - 文件包含
- PHP - GET 和 POST
- PHP - 文件上传
- PHP - Cookie
- PHP - Session
- PHP - Session 选项
- PHP - 发送邮件
- PHP - 净化输入
- PHP - Post-Redirect-Get (PRG)
- PHP - 闪存消息
- PHP 高级
- PHP - MySQL
- PHP.INI 文件配置
- PHP - 数组解构
- PHP - 编码规范
- PHP - 正则表达式
- PHP - 错误处理
- PHP - try…catch
- PHP - 调试 Bug
- PHP - 针对 C 开发人员
- PHP - 针对 PERL 开发人员
- PHP - 框架
- PHP - Core PHP vs. 框架
- PHP - 设计模式
- PHP - 过滤器
- PHP - JSON
- PHP - 异常
- PHP - 特殊类型
- PHP - 散列
- PHP - 加密
- PHP - is_null() 函数
- PHP - 系统调用
- PHP - HTTP 身份验证
- PHP - 交换变量
- PHP - Closure::call()
- PHP - 过滤后的 unserialize()
- PHP - IntlChar
- PHP - CSPRNG
- PHP - 预期
- PHP - use 语句
- PHP - 整数除法
- PHP - 已弃用的特性
- PHP - 已移除的扩展和 SAPI
- PHP - PEAR
- PHP - CSRF
- PHP - FastCGI 进程
- PHP - PDO 扩展
- PHP - 内置函数
- PHP 有用资源
- PHP - 速查表
- PHP - 问答
- PHP - 快速指南
- PHP - 在线编译器
- PHP - 有用资源
- PHP - 讨论
PHP - switch 语句
PHP 中的 switch 语句可以作为一系列针对相同表达式的 if…else 语句的替代方案。假设你需要将表达式或变量与许多不同的值进行比较,并根据它等于哪个值来执行不同的代码段。在这种情况下,你会使用多个 if…elseif…else 结构。
但是,这种结构可能会使代码变得相当混乱且难以理解。为了简化此类代码,你可以使用 PHP 中的 switch case 结构,它提供了一种更紧凑的替代方案,以避免冗长的 if..elseif..else 代码块。
下面的 PHP 脚本使用了 if elseif 语句:
if ($x == 0) { echo "x equals 0"; } elseif ($x == 1) { echo "i equals 1"; } elseif ($x == 2) { echo "x equals 2"; }
你可以使用 switch case 语句获得相同的结果,如下所示:
switch ($x) { case 0: echo "x equals 0"; break; case 1: echo "x equals 1"; break; case 2: echo "x equals 2"; break; }
switch 语句后跟一个表达式,该表达式会依次与每个 case 子句中的值进行比较。如果发现表达式与任何 case 匹配,则执行相应的语句块。
switch 语句逐行执行花括号内的语句。
如果找到一个 case 语句,其表达式的计算结果与 switch 表达式的值匹配,则 PHP 开始执行语句,直到 switch 块结束,或者第一次遇到 break 语句。
如果你没有在 case 的语句列表末尾编写 break 语句,PHP 将继续执行下一个 case 的语句。
示例
尝试通过删除 break 语句来运行上面的代码。如果 x 的值为 0,你会发现输出包括 "x equals 1" 和 "x equals 2" 行。
<?php $x=0; switch ($x) { case 0: echo "x equals 0 \n"; case 1: echo "x equals 1 \n"; case 2: echo "x equals 2"; } ?>
它将产生以下 输出:
x equals 0 x equals 1 x equals 2
因此,务必确保每个 case 块都以 break 语句结束。
switch 中的 default case
一个特殊的情况是 default case。此 case 匹配任何其他 case 未匹配的内容。使用 default 是可选的,但如果使用,它必须是花括号内的最后一个 case。
你可以组合多个 case 来模拟多个用 或 运算符组合的逻辑表达式。
<?php $x=10; switch ($x) { case 0: case 1: case 2: echo "x between 0 and 2 \n"; break; default: echo "x is less than 0 or greater than 2"; } ?>
要比较的值在 case 子句中给出。值可以是数字、字符串,甚至是函数。但是,你不能在 case 子句中使用比较运算符(<,>,== 或 !=)。
你可以选择在 case 子句中使用分号而不是冒号。如果没有找到匹配的 case,并且也没有 default 分支,则不会执行任何代码,就像没有 if 语句为真一样。
switch-endswitch 语句
PHP 允许使用替代语法,用 switch-endswitch 语句来界定 switch 结构。以下 switch case 版本是可以接受的。
<?php $x=0; switch ($x) : case 0: echo "x equals 0"; break; case 1: echo "x equals 1 \n"; break; case 2: echo "x equals 2 \n"; break; default: echo "None of the above"; endswitch ?>
在 Switch…Case 中使用 Break 语句
显然,你不需要编写 break 来终止 default case,因为它在 switch 结构中是最后一个 case。
示例
看看下面的例子:
<?php $d = date("D"); switch ($d){ case "Mon": echo "Today is Monday"; break; case "Tue": echo "Today is Tuesday"; break; case "Wed": echo "Today is Wednesday"; break; case "Thu": echo "Today is Thursday"; break; case "Fri": echo "Today is Friday"; break; case "Sat": echo "Today is Saturday"; break; case "Sun": echo "Today is Sunday"; break; default: echo "Wonder which day is this ?"; } ?>
它将产生以下 输出:
Today is Monday