在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
还有几个月,PHP8就要在2020年11月26日发布了。作为一个全新的升级版本,PHP8做出了许多的重大调整和改变。相信大家都迫不及待想了解,PHP8的新特性有哪些?本文为大家总结归纳了PHP8新特性的一些亮点,一起来看看吧!

1、JIT进入PHP8
JIT就是Just-In-Time的缩写,中文翻译为即时编译。它作为一种编译器策略,将代码表述为一种中间状态,在运行时将其转换为依赖于体系结构的机器码,并即时执行。在 PHP 中,这意味着 JIT 将为 Zend VM 生成的指令视为中间表述,并以依赖于体系结构的机器码执行,也就是说托管代码的不再是 Zend VM,而是更为底层的 CPU。为什么要让JIT进入PHP8呢?因为JIT从底层开始优化PHP的性能,突破了PHP性能优化的瓶颈。
2、PHP8支持Union Types
Union Types,中文翻译为联合类型。它支持接收多个不同类型的值,它是两种或多种类型的集合,使用时可以选择其一。如今不仅仅是PHP,许多其他的开源生态的标准库中,都在广泛的使用联合类型。而PHP8支持Union Types,将会允许将更多类型信息从 phpdoc 迁移至函数签名。我们可以看到,继泛型之后,联合类型是目前类型声明系统中最大的突破口。
3、PHP8中支持static返回类型
虽然PHP已经可以返回self了,但是考虑到PHP具有动态类型的性质,PHP8的新特性增加了static返回类型,对于许多开发者来说,是相当使用的调整和改变了。
class Foo
{
public function test(): static
{
return new static();
}
}
4、增加注解
这里的Attributes也就是其它语言中的annotations(注解),它提供了一种向类添加元数据的方法,不需要解析文档块。
5、PHP8引入了弱引用
WeakMaps 允许创建从对象到任意值的映射(类似 SplObjectStorage),而不会阻止对用作 key 的对象进行垃圾回收。只要将对象添加到 WeakMap 中,GC 在触发条件时就可以将其占用内存回收。
class Foo
{
private WeakMap $cache;
public function getSomethingWithCaching(object $obj): object
{
return $this->cache[$obj]
??= $this->computeSomethingExpensive($obj);
}
}
以上就是关于PHP8的新特性总结,大家对此次的PHP8新版本有什么看法呢?
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
PHP开发发展前景如何?较其他语言有哪些优势?
最近看到网上有同学在讨论学PHP发展前景如何?好不好找工作,较其他语言有哪些优势?不要相信网络上说互联网寒冬,PHP待遇差,工作饱和了等等谣言,只要技术过硬,就不必担心被行业淘汰,能力决定未来。
9037
2020-02-13 17:25:25
新手如何快速学习PHP语言?
接触互联网时间越长,就会越来越觉得学习一门编程语言多么重要,PHP应用广泛,而且入门简单,是很多编程学习首选语言,所有的初学者共同面临的问题是:那怎么样才能学好PHP语言。
9486
2020-02-27 14:22:11
PHP获取文件扩展名的办法有哪些?
PHP 获取文件扩展名的办法有哪些?对于PHP编程的学习者来说,PHP获取文件扩展名是一种必须要掌握的操作。无论是在PHP开发岗位的面试过程中,还是PHP入门的初步学习中,PHP获取文件扩展名都是很经典且常见的一个知识点。下面小编整理了一些PHP获取文件扩展名的办法,一起来看看吧!
7105
2020-03-23 10:41:20
PHP培训学校靠谱吗?怎么选?
PHP培训学校靠谱吗?怎么选?IT互联网快速发展,企业对PHP程序员的需求量增加,但国内PHP人才贮备的不足、培训体系的不健全PHP人才稀缺。在与其他同类编程语言相比,PHP开发速度快、运行效率高、安全性好、可扩展性强、开源自由等优势,PHP发展将成为未来WEB开发领域的主流技术体系。
7510
2020-05-05 09:58:31
什么时候PHP成了最糟糕的语言?
PHP是一门有趣的编程语言。语言与利用语言构建的程序通常属于两种设计理念。这里我指的不是瀑布式或敏捷之类的软件开发生命周期,而是软件管理的基本思想。有人将这些思想称为“正确的方式”以及“Worse is Better”。
5020
2021-09-30 15:17:24
