PHP 8.4 新版本发布:主要变化与改进

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

PHP 8.4 新版本发布:有哪些变化以及为何重要



开发者社区迎来了期待已久的 PHP 8.4 版本,该版本带来了一系列重大改进,旨在提升性能、安全性和代码编写便利性。此次更新延续了自 8.0 版本开始的现代化语言进程,并提供了能够简化新手和经验丰富的工程师工作的工具。



PHP 8.4 的关键新特性



PHP 核心开发者专注于三个主要方向:面向对象编程的语法糖、异步处理的改进以及性能优化。让我们来看看最引人注目的变化。



  • Property Hooks(属性钩子)。 期待已久的功能,允许在读取或写入类属性时添加逻辑,而无需手动编写 getter 和 setter。现在可以使用 get 和 set 修饰符声明属性,使代码更加简洁易读。例如:
    class User {    public string $name {        get => ucfirst($this->name);        set => $this->name = strtolower($value);    }}
  • 异步信号处理(Async Signal Handling)。 一种新的操作系统信号(例如 SIGTERM、SIGHUP)异步处理系统。这对于长时间运行的脚本和守护进程尤其有用,这些场景需要在不阻塞主线程的情况下正确终止工作或重新加载配置。
  • 改进的 JIT 编译器。 即时编译机制获得了额外的优化。根据开发者的测试,在计算密集型任务(例如数学计算、处理大型数组)中,性能相比 PHP 8.3 提升了 10% 到 30%。
  • 新属性 #[\\Override]。 一个明确指示方法覆盖父类方法的属性。如果父类中的方法被删除或更改,PHP 将抛出错误——这可以防止继承过程中的意外破坏。
  • 支持惰性对象(Lazy Objects)。 在核心层面实现了“惰性初始化”模式。标记为惰性的对象在首次访问其属性或方法之前不会加载到内存中。这减少了具有大量服务的应用程序中的内存消耗。


对 Web 开发的影响



PHP 8.4 新版本面向现代框架(Laravel、Symfony、Yii)。Property Hooks 将大大简化与 Active Record 和 ORM 的协作,从而消除样板代码。异步信号将在处理队列(Redis、RabbitMQ)和 WebSocket 服务器的应用程序中受到欢迎。



对于教育门户 PythonLib 来说,值得注意的是 PHP 继续在 backend 开发领域保持其地位。学习语言的新特性是对市场所需最新技能的投资。



如何迁移到 PHP 8.4



建议逐步进行更新:

  • 使用 Rector 或 PHPStan 等工具检查代码的兼容性。#[\\Override] 属性可能会发现隐藏的错误。
  • 测试框架和库的工作情况——大多数流行的解决方案已经发布了支持补丁。

推荐库