【问题标题】:What are the difference between PHP 8 Match expression vs PHP 7 switch case?PHP 8 Match 表达式与 PHP 7 switch case 有什么区别?
【发布时间】:2020-12-03 17:57:54
【问题描述】:

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. 匹配和切换用例。

【问题讨论】:

标签: php switch-statement match php-8


【解决方案1】:

主要区别:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 2013-05-08
    • 2011-01-14
    • 2010-11-11
    相关资源
    最近更新 更多