编程 PHP 8.5.0 发布:管道运算符、clone with 和 Fatal error backtrace

2026-09-19 21:02:11

PHP 8.5.0 发布:管道运算符、clone with 和 Fatal error backtrace

PHP 8.5.0 于 2025-11-20 发布。几个能立刻用上的新特性:

  1. 管道运算符 |>:把值从左到右穿过多个 callable,省略中间变量。以前 (new Collection)->map()->filter() 那种链,或嵌套函数里翻着读的调用,现在可以顺着写。
  2. clone withclone 从语言结构变成函数,支持传关联数组在克隆时改写属性:clone($obj, ['prop' => $v])。对 readonly 类实现 "with-er" 模式很直接。
  3. #[\NoDiscard] 属性:标记函数返回值重要,未被消费时发 warning;(void) 强制转换表示有意不用,用来消除警告。
  4. array_first() / array_last():取数组首/末值,空数组返回 null,方便配 ??
  5. Closure::getCurrent():在匿名函数里拿到当前正在执行的闭包,简化递归(以前要 bind 变量引用)。
  6. 常量表达式支持闭包、cast 和一等可调用:可在 attribute 参数、属性/参数默认值、常量里用。
  7. Fatal error 带 backtracefatal_error_backtraces 默认 1(如超过 max_execution_time 的错误,以前没栈)。

其他:URI 扩展(RFC 3986 与 WHATWG);cURL 持久共享句柄 curl_share_init_persistent()setcookie() 支持 partitionedPHP_BUILD_PROVIDER/PHP_BUILD_DATE 常量;TAILCALL VM(Clang>=19 的 x86_64/aarch64 默认启用)。

弃用:非数字字符串的自增已弃用。

来源:php.net/releases/8.5/en.phpphp.net/migration85.new-features.php

复制全文 生成海报 PHP 8.5 语言特性 后端

推荐文章

程序员茄子在线接单