还有几个月,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编程技术容易学吗?总是会有零基础的小伙伴这么问。其实学习只要你够努力有恒心和毅力,就会发现世上无难事只怕有心人。当然啦学东西,永远不会有容不容易这一说,别人提供了好的方法,只有加上自己的用心才能有结果。
4546
2019-7-15 18:19:44
本文整理了PHP命令行下的11个常用命令,下面介绍给大家,它们分别是php -m、php -v、php --ini、php -h、php --info、php --rf
1874
2019-11-18 16:59:24
如今市面上规模较大的PHP培训机构都在一万到两万之间,黑马程序员PHP培训2万左右,这些费用对于大部分刚毕业的学生来说是比较困难的,但是想要找到靠谱的PHP培训机构就必须要结合自身的经济情况以及学习能力进行选择,不能贪图学费一时便宜选择不知名的小机构,最后学不到东西不仅浪费了钱还浪费了宝贵的机会。
2155
2019-12-18 14:59:58
Cookie和Session有哪些区别?其实,两者作为PHP会话管理的差异是显而易见的。Cookie是数据存储在浏览器端,最大的优点是方便与JS交换数据和获取用户信息。而Session数据存储在服务器,它的优势是安全高效,不依赖浏览器端环境。严格来说,两者各自有着千丝万缕联系的同时,也是相互区别的。下面小编来带大家一起认识一下Cookie和Session。
2535
2020-2-11 21:55:31
PHP作为一种开源的脚本语言,适用于Web开发领域。因此,如果能够熟练掌握PHP开发技能,你就能真正掌握互联网系统架构设计思想,还能实现对门户网站、商城系统、办公系统等项目进行系统性能调优。那么掌握PHP开发技能需要学习哪些知识?html5、Css3、 MySQL数据库、移动端开发框架等等。下面我们来详细看看PHP开发的学习内容。
1617
2020-6-11 17:11:43