【问题标题】: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!
- 哪一种性能更好?
- 匹配和切换用例。
【问题讨论】:
标签:
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 起可用。