Skip to content

PHP 8 不是一个单一版本,而是一条从 8.0 延续到 8.5 的语言与运行时演进线。本文先把版本数量、支持状态、升级目标和验证方法放在同一张地图中,帮助你避免“只看新特性、忽略维护窗口”的选择错误。

先看结论:PHP 8.0–8.5 共 168 个稳定版本。8.0、8.1 已结束支持;8.2–8.5 仍在官方支持表中。PHP 8.6 目前仅有 Alpha 1–3 与 Beta 1,不可用于生产环境。

一张表看清 PHP 8 版本线 ​

分支稳定版本数官方维护状态部署建议
PHP 8.030已 EOL仅维护遗留环境;应制定迁移计划
PHP 8.135已 EOL不宜继续作为新项目目标版本
PHP 8.234安全支持至 2026-12-31已有兼容性基础时的过渡选择
PHP 8.334安全支持至 2027-12-31成熟项目的稳妥升级目标
PHP 8.425安全支持至 2028-12-31需要评估属性钩子、扩展与 DOM 变化
PHP 8.510安全支持至 2029-12-31新项目可评估;先验证依赖生态
PHP 8.60 稳定版 / 4 预发布不可用于生产仅隔离测试与问题反馈

官方的维护规则是:一个分支首次稳定发布后通常有两年完整支持,随后两年只修复关键安全问题,四年后进入 EOL。因而“能安装”不等于“仍被支持”;生产环境的版本选择应先排除 EOL 分支,再把框架、扩展与宿主系统的兼容性一起考虑。PHP 官方支持版本政策 是判断维护窗口的基准来源。

PHP 8 技术图

从语言能力看演进方向 ​

阶段代表能力工程意义常见误区
8.0类型系统、Attributes、match、Nullsafe把大量约定转为运行时可验证的语法把 JIT 当作所有 Web 项目的固定加速器
8.1Enums、readonly、Fibers强化领域建模与异步库底层能力认为 Fiber 自动产生多线程并发
8.2readonly class、Random、动态属性弃用减少对象模型隐患继续无提示地给任意对象挂字段
8.3–8.5Override、属性钩子、URI、管道增强重构安全性与 API 表达力跳过依赖和扩展验证直接升级

选择目标版本的可执行框架 ​

若你维护的是一个旧项目,应先在当前版本上补齐测试,随后选择仍在支持期内、且框架官方已声明兼容的分支。若是新项目,则可将更长的安全维护窗口作为重要因素,但不能省略 Composer 依赖、PECL 扩展、镜像和系统包的验证。

bash
# 在目标主机或容器中记录当前运行时与配置来源
php -v
php --ini
php -m | sort
composer check-platform-reqs

这组命令不会替你完成升级,但能把“当前 PHP 版本、加载的 ini、启用扩展、依赖平台要求”固化为可比对的基线。升级前后都执行一次,并将差异纳入变更记录。

php
<?php
// 运行时版本门禁示例:部署前检查最低 PHP 要求
if (PHP_VERSION_ID < 80300) {
    throw new RuntimeException('该服务要求 PHP 8.3 或更高版本');
}
echo PHP_VERSION, PHP_EOL;

将版本约束写进启动检查可以避免镜像、CLI 与 FPM 使用了不同 PHP 二进制时悄然上线。对共享服务器尤其重要。

升级与回滚的最小闭环 ​

  1. 备份当前制品、锁定依赖和 PHP-FPM 配置;
  2. 在预发布环境使用目标小版本执行单元、集成和关键链路测试;
  3. 灰度切换并监控错误率、延迟、FPM 进程和日志;
  4. 保留上一套可启动运行时与依赖锁文件,异常时以发布单元回滚。

结语 ​

PHP 版本升级不是把二进制文件替换掉就结束了。更可靠的路径是先确认支持状态与升级边界,再让依赖、测试、部署和回滚共同构成闭环。本文的版本结论以 PHP 官方资料为准;在实际变更前,仍应在与生产尽量接近的环境中完成验证。

官方参考资料 ​

  1. PHP 官方支持版本政策
  2. PHP 8 官方 ChangeLog
  3. PHP 官方 2026 新闻档案

VitePress Vue.js 3.5+ Node.js 24.04 LTS pnpm Nginx Released under the MIT License.