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 被弃用。
相关推荐
cc_yy_zh几秒前
学习使用kali抓包
服务器·学习·php
孙启超15 分钟前
【AI开发之Rust】第 3 课:字符串与复合类型 —— 数据怎么放
开发语言·人工智能·后端·rust·llm·transformer
t-think21 分钟前
C++ string 类(上)—— string类初识与常用接口详解
开发语言·c++
cpp_learners34 分钟前
C++ 实现责任链模式(Chain of Responsibility):从一堆 if-else 到可插拔的处理管道
开发语言·c++·责任链模式
君顾11 小时前
外卖CPS软件开发实战:从系统架构到部署全流程指南
java·开发语言·外卖
AIFQuant1 小时前
Python实时外汇行情接入实战:WebSocket与REST K线查询
开发语言·python·websocket
名字还没想好☜2 小时前
Java NIO ByteBuffer 实战:flip/clear/compact 三个绕晕人的方法与 position/limit 心智模型
java·开发语言·后端·spring·nio
ao-weilai2 小时前
Linux网络编程:网络知识基础
linux·网络·php
小溪学编程2 小时前
AQS 原理详解:从 CLH 队列到 ReentrantLock 的实现
java·开发语言