Categories
程式開發

一文看懂PHP 8的新特性


本文最初发布于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的联合类型:

原文链接:【https://www.infoq.cn/article/akd4xwUCGeYIkV2KVe5S】。未经作者许可,禁止转载。