本文最初发布于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】。未经作者许可,禁止转载。