PHP8.5新功能预览
PHP 8.5 将于 2025 年 11 月发布,并带来一些有用的新功能和改进。此版本侧重于开发人员体验增强、新的实用程序函数和更好的调试功能。
新的数组函数
array_first() 和 array_last()
PHP 8.5 添加了两个请求量很大的函数,用于检索数组的第一个和最后一个值,补充了 PHP 7.3 中现有的array_key_first()
和array_key_last()
函数。
1 | $users = ['Alice', 'Bob', 'Charlie']; |
这些函数等效于:
array_first($array)
→ $array[array_key_first($array)]
array_last($array)
→ $array[array_key_last($array)]
管道操作
PHP 8.5 引入了一个新的管道运算符 (|>),它允许从左到右链接多个可调用对象,将左侧可调用对象的返回值传递给右侧可调用对象:
1 | $result = 'Hello World' |
管道运算符适用于任何可调用对象 - 函数、方法、闭包和第一类可调用对象。但是,它有一些限制:
- 所有可调用对象必须只接受一个必需的参数
- 不能使用具有按引用参数的函数(少数例外)
- 返回值始终作为第一个参数传递
新的错误和异常处理程序 getter
PHP 8.5 引入了两个新函数,允许您检索当前活动的错误和异常处理程序:get_error_handler()
和get_exception_handler()
。 这两个函数都返回当前可调用的处理程序,如果未设置自定义处理程序,则返回null
。
新的cURL函数
curl_multi_get_handles()
cURL 扩展获得了一个新函数,用于从多手柄中检索所有句柄:
1 | $multiHandle = curl_multi_init(); |
新的Locale函数
locale_is_right_to_left()
PHP 8.5 添加了对检测从右到左 (RTL) 语言环境的支持,从而提高了国际化功能:
1 | // Check if locale uses RTL writing |
新PHP_BUILD_DATE常量
一个新的常量提供了 PHP 二进制文件的构建日期,用于调试和版本审计:
1 | echo PHP_BUILD_DATE; // e.g., 'Nov 15 2025 10:30:45' |
CLI 增强功能
php --ini=diff
一个新的 CLI 选项,用于仅输出非默认 INI 指令:
1 | # Show only modified settings |