- 属性钩子(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
相关推荐
swany9 分钟前
同步数据中,只需要几秒钟 & milvus向量数据库不可用 dify1.16.1 升级后踩坑记录小杍随笔12 分钟前
2025年Rust GUI框架实战万字避坑指南geovindu19 分钟前
CSharp: LogHelper奈斯先生Vector26 分钟前
大模型 Agentic Workflow 架构解构:异构 API 调度与 Token 路由的多模态系统设计冻柠檬飞冰走茶30 分钟前
PTA基础编程题目集 7-20 打印九九口诀表(C语言实现)Richard.Wong1 小时前
qt生成dll供C#调用wang_xin_8881 小时前
PHP函数Immortal__y1 小时前
php函数AI砖家1 小时前
多商户多租户系统架构设计文档(Java版)鱼子星_2 小时前
【C++】深入剖析list:list及其双向迭代器实现