• 在线客服

  • 扫描二维码
    下载博学谷APP

  • 扫描二维码
    关注博学谷微信公众号

  • 意见反馈

原创 PHP8的新特性有哪些?

发布时间:2020-06-26 11:46:35 浏览 5765 来源:博学谷 作者:照照

    还有几个月,PHP8就要在20201126日发布了。作为一个全新的升级版本,PHP8做出了许多的重大调整和改变。相信大家都迫不及待想了解,PHP8的新特性有哪些?本文为大家总结归纳了PHP8新特性的一些亮点,一起来看看吧!

     

    PHP8的新特性

     

    1JIT进入PHP8

     

    JIT就是Just-In-Time的缩写,中文翻译为即时编译。它作为一种编译器策略,将代码表述为一种中间状态,在运行时将其转换为依赖于体系结构的机器码,并即时执行。在 PHP 中,这意味着 JIT 将为 Zend VM 生成的指令视为中间表述,并以依赖于体系结构的机器码执行,也就是说托管代码的不再是 Zend VM,而是更为底层的 CPU。为什么要让JIT进入PHP8呢?因为JIT从底层开始优化PHP的性能,突破了PHP性能优化的瓶颈。

     

    2PHP8支持Union Types

     

    Union Types,中文翻译为联合类型。它支持接收多个不同类型的值,它是两种或多种类型的集合,使用时可以选择其一。如今不仅仅是PHP,许多其他的开源生态的标准库中,都在广泛的使用联合类型。而PHP8支持Union Types,将会允许将更多类型信息从 phpdoc 迁移至函数签名。我们可以看到,继泛型之后,联合类型是目前类型声明系统中最大的突破口。

     

    3PHP8中支持static返回类型

     

    虽然PHP已经可以返回self了,但是考虑到PHP具有动态类型的性质,PHP8的新特性增加了static返回类型,对于许多开发者来说,是相当使用的调整和改变了。

     

    class Foo

    {    

          public function test(): static

    {       

                 return new static();

          }

    }

     

    4、增加注解

     

    这里的Attributes也就是其它语言中的annotations(注解),它提供了一种向类添加元数据的方法,不需要解析文档块。

     

    5PHP8引入了弱引用

     

    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架构师完整进阶路线规划

相关推荐 更多

热门文章

  • 前端是什么
  • 前端开发的工作职责
  • 前端开发需要会什么?先掌握这三大核心关键技术
  • 前端开发的工作方向有哪些?
  • 简历加分-4步写出HR想要的简历
  • 程序员如何突击面试?两大招带你拿下面试官
  • 程序员面试技巧
  • 架构师的厉害之处竟然是这……
  • 架构师书籍推荐
  • 懂了这些,才能成为架构师
  • 查看更多

扫描二维码,了解更多信息

博学谷二维码