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 驱动程序特定子类,如 Pdoirebird、Pdoirebird 等。
- 支持在不使用括号的情况下访问新实例化对象的属性和方法。
- 新增多个类、接口和函数,增强 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(),可以用于数组操作和查询。
➡️