PHP 8,PHP 的一个新的大版本,预计将于2020年12月3日发布,这意味着将不会有 PHP 7.5 版本。PHP8目前正处于非常活跃的开发阶段,所以在接下来的几个月里,情况可能会发生很大的变化。
在这篇文章中,我会维持一个最新的清单列表,列出预计会出现的新特性、性能提升和突破性的变化。由于 PHP 8 是一个新的大版本,因此您的代码被破坏的可能性更高。如果您始终保持运行 PHP 的最新版本,那么升级相对来说就会轻松很多,因为在7. *版本中,大多数重大更改均已弃用。
除重大更改外,PHP 8还带来了一些不错的新功能,比如说 JIT编译器, 联合类型, 属性,以及更多。
几个关键点:
Opcache会做opcode层面的优化,比如图中的俩条opcode合并为一条
PHP8的JIT目前是在Opcache之中提供的
JIT在Opcache优化之后的基础上,结合Runtime的信息再次优化,直接生成机器码
JIT不是原来Opcache优化的替代,是增强
目前PHP8只支持x86架构的CPU
事实上JIT共用了很多原来Opcache做优化的基础数据结构,比如data flow graph, call graph, SSA等
PHP 8 Beta 2 已经发布,自从进入 Beta 阶段,PHP 8 已进入特性冻结期,不会有特性上的变更。
此版本修复了一个 SPL bug:由于缺少 zend_restore_error_handling() 而导致 SplFileInfo 中的内存泄漏。
PHP 8 具体的发布周期如下:
https://wiki.php.net/todo/php80
其中,删除了 RC6 使计划与其它活跃分支的发布保持一致。也可以看到,下一个版本 Beta 3 计划于 9 月 3 日发布,8.0.0 正式 GA 日期为 11 月 26 日。
需要注意的是,Beta 阶段的版本不适合用于生产中。
PHP 8 是一个新的主要版本,它引入了一些重大变更,以及许多新特性和性能改进,包括期待已久的 JIT、Union Types、Attributes 与 WeakMap 等,具体可以查看此前的报导:https://www.oschina.net/news/116719/php-8-0-0-alpha-1-released