如何使用 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',
};