猿问

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

在 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;

}


慕村9548890
浏览 111回答 1
1回答

一只斗牛犬

有一件重要的事情必须记住match。它是类型敏感的,而不是作为switch语句。因此,正确地转换变量非常重要。对于 HTTP 代码,通常以字符串格式发送,例如"400"。当我们不知道的时候,在调试过程中可能会带来很多痛苦。如果$statusCode是字符串,则将始终调用默认选项。我对已接受答案的修改版本:$message = match((int) $statusCode) {  200, 300 => null,  400 => 'not found',  500 => 'server error',  default => 'unknown status code',};
随时随地看视频慕课网APP
我要回答