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 弃用了多个旧功能,如 IMAP 和 OCI8 扩展,开发者在升级时需特别注意这些变化,以避免在现有项目中出现兼容性问题。建议在升级前进行充分的测试,确保代码的稳定性。

延伸问答

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(),可以用于数组操作和查询。

🏷️

标签

➡️

继续阅读