PHP 8.4有哪些新功能值得关注

  1. 属性钩子(Property Hooks)
    • 允许开发者为每个属性定义自己的getset钩子,以在属性访问前后添加自定义逻辑。
    • 属性钩子通过__get()__set()方法实现,类似于其他编程语言(如Kotlin、C#和Swift)中的属性访问器。
    • 这是一个重要的变化,旨在减少大量的getter和setter方法的编写,提高代码的可读性和可维护性。
    • 钩子是可选的,不必在特定属性上同时添加两个钩子。例如,只有get钩子的属性可以被视为虚拟属性。
  2. JIT(即时编译)改进
    • PHP 8.4引入了基于IR(中间表示)框架的新JIT实现,旨在提高代码的执行效率。
    • JIT编译器可以将热点代码(即频繁执行的代码)编译成直接可执行的机器码,从而提高执行效率。
    • 配置JIT的方式也有所改变,现在可以直接通过opcache.jit参数启用或禁用JIT。
  3. DOM扩展升级
    • PHP 8.4的DOM扩展支持HTML5的解析和序列化,这意味着在处理HTML5特定标签或在JavaScript中嵌入HTML时将更加方便。
    • 使用新的DOM\HTMLDocument类,可以轻松地从字符串或文件中创建HTML文档,并符合现代Web标准。
  4. bcrypt加密成本的增加
    • 在PHP 8.4中,bcrypt的默认加密成本已增加到12。
    • 这意味着bcrypt加密的迭代次数增加,从而增强了密码的安全性,使其更难被破解。
  5. 更好的链式调用
    • PHP 8.4支持在不使用额外括号的情况下进行链式调用,这有助于减少代码的冗余并提高可读性。
    • 例如,在PHP 8.4中,可以像这样链式调用方法:$name = new ReflectionClass($objectOrClass)->getShortName();
  6. 增强的多字节字符串处理
    • 虽然不是PHP 8.4直接引入的新功能,但相关的第三方库和扩展提供了更好的多字节字符串处理能力。
    • 这些库和扩展可以帮助开发者更好地处理包含多字节字符的字符串,避免在字符串处理过程中出现错误。
  7. 其他性能优化和改进
    • PHP 8.4还包含了一些其他的性能优化和改进,这些改进旨在提高PHP的整体性能和稳定性。
  8. 弃用和移除的功能
    • PHP_ZTS 和 PHP_DEBUG 常量值类型从int改为bool。
    • Implicitly nullable parameter declarations(隐式可为空的参数声明)被弃用。
    • Curl: CURLOPT_BINARYTRANSFER 被弃用。
相关推荐
BingoGo21 小时前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack21 小时前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户3074596982072 天前
PHP 扩展——从入门到理解
php
鹏仔先生2 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
LDR0063 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术3 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园3 天前
C++20 Modules 模块详解
java·开发语言·spring
swordbob3 天前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享3 天前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Luminous.3 天前
C语言--day30
c语言·开发语言