PHP 8.0 是 PHP 语言的一个主版本更新。它包含了很多新功能与优化项, 包括命名参数、联合类型、注解、构造器属性提升、match 表达式、nullsafe 运算符、JIT,并改进了类型系统、错误处理、语法一致性。
即时编译
PHP 8 引入了两个即时编译引擎。 Tracing JIT 在两个中更有潜力,它在综合基准测试中显示了三倍的性能, 并在某些长时间运行的程序中显示了 1.5-2 倍的性能改进。 典型的应用性能则和 PHP 7.4 不相上下。
关于 JIT 对 PHP 8 性能的贡献:
新的类、接口、函数
- Weak Map类
- Stringable接口
- str_contains()、str_starts_with()、str_ends_with()
- fdiv()
- get_debug_type()
- get_resource_id()
- token_get_all()对象实现
类型系统与错误处理的改进
- 算术/位运算符更严格的类型检测RFC
- Abstract trait 方法的验证RFC
- 确保魔术方法签名正确RFC
- PHP 引擎 warning 警告的重新分类RFC
- 不兼容的方法签名导致 Fatal 错误RFC
- 操作符 @ 不再抑制 fatal 错误。
- 私有方法继承RFC
- Mixed 类型RFC
- Static 返回类型RFC
- 内部函数的类型Email thread
- 扩展Curl、Gd、Sockets、OpenSSL、XMLWriter、XML以 Opaque 对象替换 resource。
其他语法调整和改进
- 允许参数列表中的末尾逗号RFC、 闭包 use 列表中的末尾逗号RFC
- 无变量捕获的 catchRFC
- 变量语法的调整RFC
- Namespace 名称作为单个 tokenRFC
- 现在 throw 是一个表达式RFC
- 允许对象的 ::classRFC
原文地址:https://www.zhanzhangb.com/1373.html