- 属性钩子(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
相关推荐
techdashen1 分钟前
Go 1.18+ slice 扩容机制详解froginwe116 分钟前
R 包:全面解析与高效使用指南Arwen3038 分钟前
如何消除APP、软件的不安全下载提示?怎样快速申请代码签名证书?zero.cyx9 分钟前
javaweb(AI)-----后端say_fall16 分钟前
泛型编程基石:C++ 模板从入门到熟练txinyu的博客22 分钟前
结合游戏场景解析UDP可靠性问题djimon24 分钟前
06年老电脑复活Ubuntu14.04配置Python网站爬自动化雾岛听蓝28 分钟前
探索C++继承机制人道领域40 分钟前
【零基础学java】(等待唤醒机制,线程池补充)智算菩萨43 分钟前
【Python自然语言处理】基于NLTK库的英文文本词频统计系统实现原理及应用