php - switch 语句可以带两个参数吗?

标签 php

PHP switch 语句可以接受两个参数吗?例如:

switch (firstVal, secondVal){

    case firstVal == "YN" && secondVal == "NN":
    thisDesc = "this is the outcome: YN and NN";
    break;

    case firstVal == "YY" && secondVal == "NN":
    thisDesc = "this is the outcome: YY and NN";
    break;
}

非常感谢,我已经很多年没有用过 PHP 了!

最佳答案

不,你不能。一个 switch 语句,如

switch ($a) {
  case 1:
  break;
  case 2:
  break;
}

实际上等同于

if ($a == 1) {
} else if ($a == 2) {
}

你可以使用稍微不同的结构

switch (true) {
  case $firstVal == "YN" && $secondVal == "NN":
  break;
  case $firstVal == "YY" && $secondVal == "NN":
  break;
}

相当于

if (true == ($firstVal == "YN" && $secondVal == "NN")) {
} else if (true == ($firstVal == "YY" && $secondVal == "NN")) {
}

在某些情况下,它比无限的 if-elseif-else 链更具可读性。

关于php - switch 语句可以带两个参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6587756/

相关文章:

javascript - 检测 URL 的最后一部分不起作用 - PHP

php - undefined variable 错误(对于占位符)显示在 html 文件中,即使它是在 php 文件中定义的

php - 为什么这个 htaccess 文件在 wamp 服务器中不起作用

php - 遵循 AngularJS/MySQL/PHP 教程。无法将给定的 .HTACCESS 文件转换为等效的 web.config

php - 如何从数组中提取特定值

php - 更改 php 错误报告以仅隐藏特定站点的警告

php - 使用 php 发送确认电子邮件

PHP:各种 intval() 结果

php - 插入具有相同数据库但具有相同ID的两个表

php - 如何为表格的每一行放置一个表格