PHP最新版本更新了什么功能

wen PHP项目 3

本文目录导读:

PHP最新版本更新了什么功能

  1. 核心新特性
  2. 性能与 JIT 改进
  3. 语言与语法改进
  4. 类与接口的新增
  5. 其他重要改进
  6. 弃用(Deprecations)提醒
  7. 如何查看最新消息?

PHP 8.4 是 PHP 最新的大版本更新(于 2024 年 11 月 21 日发布),如果你问的是最新稳定版,那就是 PHP 8.4。

如果你指的是正在开发中的 PHP 8.5(预计 2025 年 11 月发布),目前还处于早期特性讨论阶段。

以下是 PHP 8.4 带来的核心新功能、性能改进和弃用项:

核心新特性

  • 属性挂钩(Property Hooks):这是 PHP 8.4 最重大的语法革新,它允许你在声明属性时直接定义 getset 逻辑,无需再写样板式的 gettersetter 方法。
    class User {
        public string $name {
            get => strtoupper($this->name);
            set => trim($value);
        }
    }
  • 不对称可见性(Asymmetric Visibility):允许属性的读取和写入权限不同,你可以让属性的读取是 public,但写入是 protected
    class Post {
        public private(set) int $views = 0; // 外部可读,但只能内部修改
    }
  • 新的 #[\Deprecated] 属性:你现在可以在类、方法、函数或常量上标记 #[Deprecated],IDE 和静态分析工具会自动提示弃用警告。
  • 实例化时不加括号(New without parentheses):允许链式调用时省略构造函数的括号(如果构造函数无参数)。
    $foo = new Foo()->method(); // 以前需要 new Foo()->method();

性能与 JIT 改进

  • JIT(即时编译)重写:PHP 8.4 对 JIT 进行了大幅重写(基于新的 IR 框架),减少了内存占用,并提升了对 CPU 密集型任务的性能(官方宣称部分基准测试提升 15% 以上)。
  • 数组排序优化:改进了 sort()usort() 等数组排序函数的底层算法,排序速度更快。

语言与语法改进

  • 新的 #[Deprecated] 属性(已在上文提及)。
  • exitdie 作为函数exitdie 是真正的函数,可以像 exit() 一样使用,并且可以被安全地引用(例如作为回调函数)。
  • 新增 mb_trim() 等多字节字符串函数:填补了多字节字符串处理中 trimltrimrtrim 的空白。

类与接口的新增

  • #[\Override] 属性现已被广泛支持:虽然不是 8.4 新增,但在 8.4 中该属性的使用更加完善。
  • 新增 Dom:PHP 8.4 引入了新的符合规范的 DOM 类(Dom\HTMLDocumentDom\XMLDocument),它们遵循 WHATWG 规范,比旧的 DOMDocument 更现代、更安全(修复了安全漏洞),注意旧的 DOMDocument 并未移除,但新代码建议使用新类。

其他重要改进

  • request_parse_body() 函数:这是一个新的函数,用于在非标准 HTTP 方法(如 PATCH)中安全地解析请求体($_POST),解决了 php://input 解析的痛点。
  • lazy objects 支持:引入了对惰性对象(Lazy Objects)的支持,允许延迟初始化对象属性,这在依赖注入容器和 ORM 中非常有用。

弃用(Deprecations)提醒

PHP 8.4 也对一些旧特性发出了弃用警告,如果你升级,需要注意:

  • 隐式可空参数类型function foo(string $param = null) 这种写法被弃用,应显式写为 ?string
  • E_STRICT 常量:被弃用。
  • foreach 中使用非变量:某些特定用法会产生弃用警告。

如何查看最新消息?

PHP 官方通常每年 11 月发布一个大版本,如果你想看最新最全的更新,可以访问:

  • PHP 官方 RFC 页面:查看正在投票或已批准的新特性提案。
  • PHP 8.5 语法/特性计划:8.5 正处于 RFC 投票阶段,你可以关注像“pipe operator”、“enum case reflection”等热门提案。

如果你正在考虑升级,PHP 8.4 的最大亮点是属性挂钩(减少样板代码)和显著的性能提升,如果你目前在使用 8.0 或 8.1,升级到 8.4 的收益会非常明显。

抱歉,评论功能暂时关闭!