- 属性钩子(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
相关推荐
tumu_C1 天前
用std::function减缓C++模板代码膨胀和编译压力的一个场景BT-BOX1 天前
Matlab 2025B下载安装教程programhelp_1 天前
Pinterest OA 题库大公开|Programhelp 独家整理(最新高频)他是龙5511 天前
71:Python安全 & 反序列化 & PYC反编译 & 格式化字符串安全wjs20241 天前
Go 语言接口草莓熊Lotso1 天前
《告别 “会用不会讲”:C++ string 底层原理拆解 + 手撕实现,面试 / 开发都适用》水木流年追梦1 天前
【python因果库实战27】逆概率加权模型2张槊哲1 天前
C++ 进阶指南:如何丝滑地理解与实践多线程与多进程雪度娃娃1 天前
Effective Modern C++——型别推导Hello eveybody1 天前
介绍一下背包DP(C++)