4

PHP 8 匹配表达式代码

echo match (8.0) {
    '8.0' => "Oh no!",
     8.0 => "This is what I expected",
};
//> This is what I expected

PHP 7 切换代码

switch (8.0) {
  case '8.0':
    $result = "Oh no!";
    break;
  case 8.0:
    $result = "This is what I expected";
    break;
}
echo $result;
//> Oh no!
  1. 哪一个提供更好的性能?
  2. 匹配和切换的用例。
4

1 回答 1

5

主要区别:

  • match 是一个表达式,而 switch 是语句
  • match 使用严格比较,而 switch 使用松散
  • match 只评估一个值,而 switch 可能评估更多(取决于 break 语句)
  • match 只允许单行表达式,而 switch 允许语句块

如果您想了解更多,匹配表达式已经在 PHP 文档中找到它的页面: https ://www.php.net/manual/en/control-structures.match.php

匹配表达式基于值的身份检查分支评估。与 switch 语句类似,匹配表达式具有与多个备选方案进行比较的主题表达式。与 switch 不同,它的计算结果很像三元表达式。与 switch 不同,比较是身份检查 (===) 而不是弱相等检查 (==)。匹配表达式自 PHP 8.0.0 起可用。

于 2020-12-09T17:27:52.547 回答