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