Hacker News 中文摘要

RSS订阅

PHP 8.5今日发布,新特性一览 -- PHP 8.5 gets released today, here's what's new

文章摘要

PHP 8.5于2025年11月20日发布,主要新增了管道操作符简化函数链式调用、克隆对象时修改属性的"clone with"语法,以及新的URI解析器等特性。管道操作符让嵌套函数调用更直观,而"clone with"允许在克隆对象时直接修改属性值。

文章总结

PHP 8.5新特性详解

PHP 8.5于2025年11月20日正式发布,带来了多项重要更新:

  1. 管道操作符 新引入的管道操作符(|>)极大简化了函数链式调用,避免了深层嵌套。例如字符串处理现在可以写成清晰的链式操作: $input |> trim(...) |> str_replace(...) |> strtolower(...)

  2. 克隆增强 新增clone_with功能,允许在克隆对象时直接修改属性值。但需注意对readonly属性的特殊处理要求。

  3. 返回值强制使用 通过#[NoDiscard]属性可标记必须使用的返回值,未使用将触发警告。使用(void)强制转换可忽略警告。

  4. 闭包改进 现在闭包和一等可调用对象可用于常量表达式,支持在属性中直接定义静态闭包。

  5. 错误回溯 致命错误现在会显示完整的调用栈回溯,便于调试。

  6. 数组处理 新增arrayfirst()和arraylast()函数,简化数组首尾元素获取。

  7. URI解析 全新URI解析API提供更便捷的URL处理方式,支持获取host/scheme/port等组件。

  8. 延迟验证属性

    [DelayedTargetValidation]属性允许将编译时验证推迟到运行时。

其他重要更新: - 静态属性支持非对称可见性 - 构造属性提升支持final属性 - #[\Override]支持属性标记 - 新增DOM\Element::$outerHTML - 支持HEIF/HEIC图像的Exif处理 - filtervar()新增FILTERTHROWONFAILURE标志

不兼容变更: - 弃用非标准类型转换(如(boolean)) - 弃用反引号执行shell命令 - 禁止常量重复声明 - 移除disabled_classes配置项

(完整变更列表详见官方升级文档)

评论总结

PHP 8.5评论观点总结:

  1. 对稳定性和成熟度的认可
  • "The most exciting thing is the stability and maturity of PHP" (#3)
  • "PHP has really come a long way since I used it in the 90s" (#6)
  1. 对语言复杂化的担忧
  • "PHP becomes a complex language with each update" (#5)
  • "The pace of change makes modern codebases difficult to follow" (#9)
  1. 实用价值肯定
  • "Many sites I like are built on well maintained PHP stacks" (#4)
  • "I still find myself gravitating towards PHP for fast and simple work" (#11)
  1. 对新特性的批评
  • "Why not just something like...?" (对比管道语法,#8)
  • "PHP should focus on getting the core stuff in shape" (#13)
  1. 学习曲线问题
  • "Modern PHP is a different beast, creating barrier to re-entry" (#9)
  • "You almost need a PHD brain to be a frontend developer" (#14)
  1. 功能缺失批评
  • "Looking forward for true async" (#1)
  • "Having no way of doing ANY concurrency is a letdown" (#13)
  1. 社区情感
  • "Still remember count down to php3 announcement" (#2)
  • "Thanks PHP for bringing pipe operator in 2025" (#12)