PHP Switch 语句2025 年 5 月 15 日 | 阅读 5 分钟 PHP 中的 switch 语句允许对单个变量进行多个 if-else 条件判断。变量有时需要与多个值进行比较,并且对于每个值都必须执行不同的代码。在大多数情况下,您会编写 if-elseif-else。 如果 if-else 语句过多,代码可能会变得冗长且难以理解。通过使用 switch 语句代替多个 if-else 语句,可以降低代码复杂性并提高可读性。 语法重要提示- default 是一个可选语句。即使它不重要,default 也必须始终是最后一个语句。
- 一个 switch 语句中只能有一个 default。多个 default 可能会导致 致命错误。
- 每个 case 都可以有一个 break 语句,用于终止语句序列。
- 在 switch 中使用 break 语句是可选的。如果未使用 break,则在找到匹配的 case 值后,所有语句都将执行。
- PHP 允许在 switch 表达式中使用数字、字符、字符串以及函数。
- 允许嵌套 switch 语句,但这会使程序更复杂且可读性更差。
- 您可以使用分号 (;) 代替冒号 (:)。它不会产生任何错误。
PHP Switch 流程图 PHP Switch 示例输出 说明 - $num 的值为 20。
- switch 语句将 $num 与不同的 case 进行比较
- case 10: 不匹配。
- case 20: 找到匹配项!此 case 执行 并打印“Number is equal to 20”。
- 由于找到匹配项,break 语句阻止了进一步的执行。
- 由于 case 20 匹配,default case 未执行。
带有字符的 PHP Switch 语句检查元音和辅音的程序 我们将在 switch 表达式中传递一个字符,以检查它是元音还是辅音。如果传递的字符是 A、E、I、O 或 U,它将是元音,否则是辅音。 输出 说明 - 变量 $ch 存储要检查的字符。
- switch 语句针对多个 case 评估 $ch。
- 如果 $ch 与任何元音 case(a、e、i、o、u、A、E、I、O、U)匹配,它会打印 “Given character is vowel”。
- 如果没有 case 匹配,则执行 default case,打印 “Given character is consonant”。
- break; 语句确保一旦找到匹配项,执行就会退出 switch 块。
带有字符串的 PHP Switch 语句PHP 允许在 switch 表达式中传递字符串。让我们看下面的课程时长示例,通过在 switch case 语句中传递字符串。 输出 说明 - 代码使用值“B.Tech”初始化变量 $ch,表示课程名称。
- 使用 switch 语句将 $ch 的值与多个预定义的 case 进行比较。
- 如果 $ch 匹配一个 case(例如,“BCA”、“BSc”、“B.Tech”或“B.Arch”),它会打印相应的课程时长。
- 每个 case 都包含一个 break; 语句,以防止执行继续到下一个 case。
- 如果没有 case 匹配给定的值,则执行 default 块,打印“Wrong Choice”。
- 与多个 if-else 条件相比,该代码确保了结构化的决策制定,使其更具可读性。
PHP Switch 语句是穿透的PHP switch 语句是穿透的。这意味着如果在没有 break 语句的情况下找到第一个匹配项,它将执行所有后续语句。 输出 Choice c
Choice d
case a, b, c, and d is not found
说明 - 变量 $ch 被赋值为 'c'。
- switch 语句检查与给定 case('a'、'b'、'c'、'd')的匹配。
- 当它在 case 'c': 处找到匹配项时,它执行相应的代码并打印“Choice c”。
- 但是,在 case 'c': 之后没有 break;,因此执行继续到 case 'd':,打印“Choice d”。
- 由于 case 'd': 也缺少 break;,执行继续到 default 块,打印“case a, b, c, and d is not found”。
PHP 嵌套 Switch 语句嵌套 switch 语句是指在一个 switch 语句中包含另一个 switch 语句。有时这会导致混淆。 输出 Hyundai Tucson price is 22.39 - 32.07 L.
说明 - 变量 $car 和 $model 分别设置为“Hyundai”和“Tucson”。
- switch 语句检查 $car 的值
- 如果 $car 是“Honda”,它会进入一个嵌套的 switch 来检查车型(“Amaze”、“City”)。
- 如果 $car 是“Renault”,它会检查“Duster”或“Kwid”。
- 如果 $car 是“Hyundai”,它会检查“Creta”、“Tucson”或“Xcent”。
- 由于 $car = “Hyundai” 和 $model = “Tucson”,嵌套 switch 找到“Tucson”并打印“Hyundai Tucson price is 22.39 - 32.07 L.”。
- 由于 break; 语句,程序在找到匹配项后退出。
- 如果未找到汽车或车型,则不显示任何输出。
|