PHP 8.4 发布:主要新特性与性能改进

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

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

开始课程

PHP 8.4 已发布:主要新功能与性能改进



开发者社区翘首以盼的时刻终于到来——PHP 8.4 正式发布。此次发布标志着该语言迈出了重要一步,它依然是数百万网站和应用程序的基石。新版本为开发者带来了期待已久的功能、更好的性能以及一系列简化代码编写的改进。让我们一起来看看具体有哪些变化。



PHP 8.4 关键新特性



1. Property Hooks(属性钩子)

最受讨论的新特性之一就是 property hooks。现在,你可以直接在属性声明中定义获取(get)和设置(set)值的逻辑,而无需单独编写 getter 和 setter 方法。这使代码更简洁,并减少了样板代码的数量。

  • 示例: public string $name { set => strtoupper($value); }
  • 简化了计算属性的实现。
  • 提高了类的可读性和可维护性。


2. 非对称可见性(Asymmetric Visibility)

PHP 8.4 允许为属性的读取和写入设置不同的访问级别。例如,你可以让属性对读取公开,但对写入受保护。这对于构建严格的 API 和数据封装特别有用。

  • 语法: public private(set) string $title;
  • 提高了数据安全性。
  • 减少了对使用 getter 来控制访问的需求。


3. JIT 编译器的改进

最初在 PHP 8.0 中引入的 JIT(即时)编译器获得了显著的优化。在 8.4 版本中,对数组和循环的处理得到了改进,从而在资源密集型任务(从图像处理到复杂计算)中带来了性能提升。

  • 在某些基准测试中速度提升高达 15-20%。
  • 与 opcache 的集成更好。
  • 在长时间运行的进程中内存消耗降低。


4. 无括号创建对象的新语法

现在,如果构造函数不需要参数,则可以在不添加圆括号的情况下创建对象。这使得代码更加简洁。

  • 之前: $obj = new MyClass();
  • 现在: $obj = new MyClass;
  • 在调用链中特别方便: $obj = new MyClass->method();


5. 改进的错误处理与新增属性

新增了内置属性,例如 #[Deprecated],它允许你明确标记已弃用的方法和函数。这简化了代码重构和代码库维护的过程。

  • 调用已弃用方法时自动发出警告。
  • 能够在错误消息中指定替代方案。
  • 与 IDE 和静态分析器的集成更好。


这对开发者意味着什么?

PHP 8.4 不仅仅是一组新功能。它是向着更现代、更安全、更高性能的语言迈出的一步。Property hooks 和非对称可见性降低了新手的入门门槛,并提高了灵活性。

推荐库