一文看懂 PHP 8 的新特性
2016 年 7 月 22 日
本文最初发布于 stitcher 博客, 经原作者授权由 InfoQ 中文站翻译并分享。
2020 年 11 月 26 日,PHP 8 将正式发布。这是一个新的主要版本,它将引入一些重大更改,以及许多新特性和性能改进。PHP 8 目前正处于非常活跃的开发阶段,其第一个 Alpha 版已经于 2020 年 6 月 26 日发布。
因为新版引入了许多重大更改,你很有可能需要对代码进行一些更改才能使其运行在 PHP 8 上。如果你一直都在使用最新版本,那么这一次的升级也应该不会很难,因为多数重大更改都已在之前的 7.* 版本中弃用了。不用担心,所有这些弃用的内容都在本文中列出来了。
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
的联合类型: