- 属性钩子(Property Hooks)
- 允许开发者为每个属性定义自己的
get
和set
钩子,以在属性访问前后添加自定义逻辑。 - 属性钩子通过
__get()
和__set()
方法实现,类似于其他编程语言(如Kotlin、C#和Swift)中的属性访问器。 - 这是一个重要的变化,旨在减少大量的getter和setter方法的编写,提高代码的可读性和可维护性。
- 钩子是可选的,不必在特定属性上同时添加两个钩子。例如,只有
get
钩子的属性可以被视为虚拟属性。
- 允许开发者为每个属性定义自己的
- JIT(即时编译)改进
- PHP 8.4引入了基于IR(中间表示)框架的新JIT实现,旨在提高代码的执行效率。
- JIT编译器可以将热点代码(即频繁执行的代码)编译成直接可执行的机器码,从而提高执行效率。
- 配置JIT的方式也有所改变,现在可以直接通过
opcache.jit
参数启用或禁用JIT。
- DOM扩展升级
- PHP 8.4的DOM扩展支持HTML5的解析和序列化,这意味着在处理HTML5特定标签或在JavaScript中嵌入HTML时将更加方便。
- 使用新的
DOM\HTMLDocument
类,可以轻松地从字符串或文件中创建HTML文档,并符合现代Web标准。
- bcrypt加密成本的增加
- 在PHP 8.4中,bcrypt的默认加密成本已增加到12。
- 这意味着bcrypt加密的迭代次数增加,从而增强了密码的安全性,使其更难被破解。
- 更好的链式调用
- PHP 8.4支持在不使用额外括号的情况下进行链式调用,这有助于减少代码的冗余并提高可读性。
- 例如,在PHP 8.4中,可以像这样链式调用方法:
$name = new ReflectionClass($objectOrClass)->getShortName();
- 增强的多字节字符串处理
- 虽然不是PHP 8.4直接引入的新功能,但相关的第三方库和扩展提供了更好的多字节字符串处理能力。
- 这些库和扩展可以帮助开发者更好地处理包含多字节字符的字符串,避免在字符串处理过程中出现错误。
- 其他性能优化和改进
- PHP 8.4还包含了一些其他的性能优化和改进,这些改进旨在提高PHP的整体性能和稳定性。
- 弃用和移除的功能 :
- PHP_ZTS 和 PHP_DEBUG 常量值类型从int改为bool。
- Implicitly nullable parameter declarations(隐式可为空的参数声明)被弃用。
- Curl: CURLOPT_BINARYTRANSFER 被弃用。
PHP 8.4有哪些新功能值得关注
蚊子爱喝水2024-06-20 23:59
相关推荐
鱼鱼说测试36 分钟前
postman接口自动化测试從南走到北41 分钟前
JAVA国际版东郊到家同城按摩服务美容美发私教到店服务系统源码支持Android+IOS+H5_不会dp不改名_1 小时前
C++ 20: Concepts 与Requires韭菜钟2 小时前
Qt从qmake迁移到cmake的记录林深时见鹿7492 小时前
使用k8s k3s kuboard 部署 php hyperf 框架长城20242 小时前
从词源和输出生成等角度详细解析PHP中常用文件操作类函数少陵野小Tommy2 小时前
Python能用古诗词数据库做什么7:根据标题、诗句查找诗歌长城20242 小时前
PHP如何使用JpGraph生成3D饼形图?秦禹辰4 小时前
本地Docker部署开源Web相册图库Piwigo与在线远程访问实战方案the beard4 小时前
深入理解Java多线程:状态、安全、同步与通信