PHP8.0的Match表达式如何应用于长尾关键词匹配?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1038个文字,预计阅读时间需要5分钟。
上个月PHP社区发布的是PHP 8,正式版本也将于今年年底发布。PHP 8带来了两个最令人激动的特性:JIT和match表达式。此外,我们还要介绍另一个新引入的语法:match表达式。它可以使代码更加简洁明了。
上个月下旬PHP社区发布是PHP8第一个,正式版本也将于今年年底发布。PHP8带来来那个两个最令人激动的特性:JIT和match表达式。
本文我们要说另一个新引入的语法match表达式语法,可以说是PHP 8引入的最好的功能之一,它使用类似switch的语法。
基本功能
$status = match($request_method) { 'post' => $this->handlePost(), 'get', 'head' => $this->handleGet(), default => throw new \Exception('Unsupported'), };
用switch...case做对比,要实现上面的功能,代码要略繁琐一点:
switch ($request_method) { case 'post': $status = $this->handlePost(); break; case 'get': case 'head': $status = $this->handleGet(); break; default: throw new \Exception('Unsupported'); };
相比switch, match会直接返回值,无需中间变量(比如上例中的$status)。
本文共计1038个文字,预计阅读时间需要5分钟。
上个月PHP社区发布的是PHP 8,正式版本也将于今年年底发布。PHP 8带来了两个最令人激动的特性:JIT和match表达式。此外,我们还要介绍另一个新引入的语法:match表达式。它可以使代码更加简洁明了。
上个月下旬PHP社区发布是PHP8第一个,正式版本也将于今年年底发布。PHP8带来来那个两个最令人激动的特性:JIT和match表达式。
本文我们要说另一个新引入的语法match表达式语法,可以说是PHP 8引入的最好的功能之一,它使用类似switch的语法。
基本功能
$status = match($request_method) { 'post' => $this->handlePost(), 'get', 'head' => $this->handleGet(), default => throw new \Exception('Unsupported'), };
用switch...case做对比,要实现上面的功能,代码要略繁琐一点:
switch ($request_method) { case 'post': $status = $this->handlePost(); break; case 'get': case 'head': $status = $this->handleGet(); break; default: throw new \Exception('Unsupported'); };
相比switch, match会直接返回值,无需中间变量(比如上例中的$status)。

