21

一文看懂 PHP 8 的新特性

 3 years ago
source link: https://www.infoq.cn/article/akd4xwUCGeYIkV2KVe5S
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

本文最初发布于 stitcher 博客, 经原作者授权由 InfoQ 中文站翻译并分享。

2020 年 11 月 26 日,PHP 8 将正式发布。这是一个新的主要版本,它将引入一些重大更改,以及许多新特性和性能改进。PHP 8 目前正处于非常活跃的开发阶段,其第一个 Alpha 版已经于 2020 年 6 月 26 日发布。

因为新版引入了许多重大更改,你很有可能需要对代码进行一些更改才能使其运行在 PHP 8 上。如果你一直都在使用最新版本,那么这一次的升级也应该不会很难,因为多数重大更改都已在之前的 7.* 版本中弃用了。不用担心,所有这些弃用的内容都在本文中列出来了。

除了重大更改外,PHP 8 还带来了一组不错的新特性,例如 JIT 编译器联合类型Attributes 等。

新特性

首先,我们来看新特性。请记住 PHP 8 仍在积极开发当中,因此这个列表会随着时间的推移而变长。

联合类型

鉴于 PHP 具有动态类型的性质,在很多情况下联合类型是很有用的。联合类型(Union Types)是两种或多种类型的集合,用户可以使用其中一种。

复制代码

public function foo(Foo|Bar $input): int|float;

请注意, void 永远不能成为联合类型的一部分,因为它表示“根本没有返回值”。此外,可以使用 |null 或使用现有的 ? 符号来写 nullable 的联合类型:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK