我们可以在 PHP 8 中使用 match 表达式而不是 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;
}
最佳答案
有一件重要的事情必须记住match
.是类型敏感 ,而不是 switch
陈述。因此,正确地转换变量非常重要。在 HTTP 代码的情况下,它通常以字符串格式发送,例如"400"
.
当我们不知道它时,它可能会在调试过程中带来很多痛苦。如 $statusCode
是一个字符串,默认选项将始终被调用。我接受的答案的修改版本:
$message = match((int) $statusCode) {
200, 300 => null,
400 => 'not found',
500 => 'server error',
default => 'unknown status code',
};
关于php - 如何使用匹配表达式而不是开关表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62983592/