PHP 8.4 新版本已发布:有哪些变化
开发者社区迎来了期待已久的 PHP 8.4 版本。此次更新不仅带来了期待已久的功能,还显著提升了性能,这将改变现代代码的编写方式。让我们来解析每个使用 PHP 的人都应该了解的主要新特性。
Property Hooks(属性钩子)
最受关注的新特性之一是 property hooks。现在,您可以直接在类中定义属性的读写逻辑,而无需创建单独的 get/set 方法:
- get hook — 在访问属性时调用,允许动态计算值;
- set hook — 在赋值时调用,允许验证或转换数据;
- 语法简洁,类似于 Kotlin 或 C# 中的属性。
这简化了代码编写,使其更易读,省去了 getter 和 setter 方法。
异步属性(非对称可见性)
PHP 8.4 引入了属性的非对称可见性。现在可以为读取和写入设置不同的访问级别:
- 例如,
public private(set) string $name— 属性可以从任何地方读取,但只能在类内部修改; - 这提高了代码的封装性和安全性,无需额外的方法。
JIT 编译器的改进
开发团队对 JIT(即时编译器)进行了重大改进。在 PHP 8.4 中:
- 改进了循环和数学运算的性能;
- 降低了编译时的内存消耗;
- 更新了 IR(中间表示)引擎,在某些基准测试中速度提升了 10-15%。
这对于高负载项目和框架尤其重要。
标准库中的新函数和改进
此版本包含几个有用的补充:
- array_find() — 用于查找满足条件的第一个元素的函数(类似于
array_filter,但返回单个元素); - array_all() 和 array_any() — 检查所有元素或至少一个元素是否满足回调函数;
- mb_ucfirst() — 用于处理多字节字符串(类似于
ucfirst,但支持 UTF-8)。
这些函数简化了常见任务,减少了样板代码的数量。
其他重要变化
- 改进的类型系统: 添加了对类常量类型的支持;
- 异常处理优化: 降低了 throw/catch 的开销;
- 移除过时函数: 最终移除了旧版本中的一些已弃用元素。
这对开发者意味着什么
PHP 8.4 不仅仅是一次常规更新,更是朝着更现代、更高性能、更便捷语言迈出的一步。Property hooks 和非对称可见性改变了类的使用范式,而 JIT 的改进使 PHP 在高负载 Web 应用领域更具竞争力。
我们建议您将项目更新到