为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用匹配表达式代替开关表达式

如何使用匹配表达式代替开关表达式

PHP
慕村9548890 2023-08-11 18:07:31
在 PHP 8 中我们可以使用匹配表达式来代替 switch case。如何为以下 switch case 正确编写匹配表达式?switch($statusCode) {  case 200:  case 300:    $message = null;    break;  case 400:    $message = 'not found';    break;  case 500:    $message = 'server error';    break;  default:    $message = 'unknown status code';    break;}
查看完整描述

1 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

有一件重要的事情必须记住match。它是类型敏感的,而不是作为switch语句。因此,正确地转换变量非常重要。对于 HTTP 代码,通常以字符串格式发送,例如"400"。


当我们不知道的时候,在调试过程中可能会带来很多痛苦。如果$statusCode是字符串,则将始终调用默认选项。我对已接受答案的修改版本:


$message = match((int) $statusCode) {

  200, 300 => null,

  400 => 'not found',

  500 => 'server error',

  default => 'unknown status code',

};


查看完整回答
反对 回复 2023-08-11
  • 1 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信