PHP 8.4 正式版发布,一文快速预览新功能

💡 原文中文,约5500字,阅读约需13分钟。
📝

内容提要

PHP 8.4于11月21日发布,新增属性挂钩、惰性对象、可见性控制及DOM API更新,增强HTML5支持,新增BCMath对象API和array_*()函数,简化对象属性访问,并引入新类和函数,弃用部分旧功能。建议用户尽快了解并升级。

🎯

关键要点

  • PHP 8.4 于 11 月 21 日发布,包含多个新功能。
  • 新增属性挂钩,允许对象属性的 get 和 set 操作关联附加逻辑。
  • 不对称属性可见性允许分开控制对象属性的 set 和 get 可见性。
  • 引入惰性对象,初始化延迟到访问时。
  • 新增 #[ Deprecated] 属性,用于用户定义的函数、方法和类常量的弃用机制。
  • 更新 DOM API,增强 HTML5 支持,修复长期存在的规范性错误。
  • 新增 BCMath 的对象 API,支持面向对象的任意精度数字处理。
  • 新增 array_*() 函数,包括 array_find()、array_find_key()、array_any() 和 array_all()。
  • 新增 PDO 驱动程序特定子类,如 Pdo irebird、Pdo irebird 等。
  • 支持在不使用括号的情况下访问新实例化对象的属性和方法。
  • 新增多个类、接口和函数,增强 PHP 功能。
  • 弃用和向后不兼容的功能,包括 IMAP、OCI8、PDO_OCI 和 pspell 扩展的分离。

延伸问答

PHP 8.4 新增了哪些主要功能?

PHP 8.4 新增了属性挂钩、不对称属性可见性、惰性对象、BCMath 对象 API、array_*() 函数和 DOM API 更新等功能。

什么是属性挂钩,它有什么用?

属性挂钩允许对象属性的 get 和 set 操作关联附加逻辑,可以实现虚拟属性的功能。

惰性对象在 PHP 8.4 中如何工作?

惰性对象的初始化延迟到访问时,可以用于延迟获取初始化所需的数据或依赖项。

PHP 8.4 中的 BCMath 对象 API 有什么特点?

BCMath 对象 API 提供面向对象的任意精度数字处理,支持标准的数学运算符,并且对象是不可变的。

PHP 8.4 中有哪些功能被弃用?

PHP 8.4 弃用了 IMAP、OCI8、PDO_OCI 和 pspell 扩展,并且隐式可空参数类型和使用 _ 作为类名也被弃用。

如何使用新的 array_*() 函数?

新的 array_*() 函数包括 array_find()、array_find_key()、array_any() 和 array_all(),可以用于数组操作和查询。

➡️

继续阅读