如何使用 match 表达式而不是 switch 表达式
How to use match expression instead of switch expression
我们可以在PHP 8.
中使用匹配表达式而不是switch case
下面的switch case如何正确写出match表达式?
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 8.
中使用匹配表达式而不是switch case下面的switch case如何正确写出match表达式?
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',
};