PHP 30 年了还在 GitHub Trending,因为"PHP 已死"从来都是错的
项目:php/php-src
今日星标:+423
语言:C
许可证:BSD-3-Clause
定位:PHP 解释器源码,Web 世界的底层引擎
一个场景
你打开技术论坛,看到一篇《PHP 已死,2026 年该学什么》。你打开 GitHub Trending,看到 php/php-src 一天涨了 423 个 star。
这两个画面同时存在,而且同时为真。这不是矛盾——这是 2026 年 PHP 的真实状态。
"PHP 已死"的说法从 2010 年就开始了。15 年后,WordPress 运行着全球 43% 的网站,Laravel 生态比大多数"现代"框架都活跃,PHP 8.4 刚把 OOP 语法推进到了一个新阶段。而 PHP 的解释器源码——那个用 C 写的、30 年前由 Rasmus Lerdorf 起头的项目——今天还在 GitHub Trending 上。
"PHP 已死"是一个永远在传播、永远没有成真的预言。
PHP 8.4:不是语法糖,是范式转移
如果你对 PHP 的印象还停留在 5.x 时代的"数组当一切用",PHP 8.4 会让你重新认识这个语言。
属性钩子(Property Hooks)
PHP 8.4 之前,你要写一个"只读属性"或"带验证的 setter",需要写 getter 和 setter 方法,然后约定不要直接访问属性:
// PHP 8.3 的方式
class User {
private string $name;
public function getName(): string { return $this->name; }
public function setName(string $name): void {
if (strlen($name) < 2) throw new ValueError("Name too short");
$this->name = $name;
}
}
PHP 8.4 之后:
// PHP 8.4 的方式
class User {
public string $name {
get => $this->name;
set => strlen($value) < 2
? throw new ValueError("Name too short")
: $this->name = $value;
}
}
这不是语法糖。这是把 getter/setter 从"方法"降级为"属性的行为"——调用者用 $user->name 访问,不需要知道背后有没有 hook。这和 C# 的 property、Kotlin 的 delegated property 是同一个设计哲学。
非对称可见性(Asymmetric Visibility)
PHP 8.4 之前,属性的可见性是对称的:public 就是读写都 public,private 就是读写都 private。你想"公开读但只能从类内部写",必须用 getter。
PHP 8.4:
class Config {
public private(set) string $apiKey = '';
public protected(set) int $timeout = 30;
}
一行代码搞定"公开读、受限写"。这在配置管理和不可变对象场景下极其有用。
新的数组函数
array_find、array_find_key、array_any、array_all——PHP 终于内置了函数式编程的基础设施。以前你需要写 foreach 循环或用 array_filter + array_values 的组合拳,现在一行代码搞定。
为什么 PHP 解释器源码还在 Trending
423 个 star 在一天内涌入 php/php-src,不是因为有人突然发现了 PHP。是因为 PHP 8.5 的开发分支正在活跃推进,核心贡献者的工作让仓库的 public 活动量飙升。
看几个数据点:
- PHP 8.0(2020 年 11 月)引入 JIT 编译器,性能比 7.x 提升 30-50%
- PHP 8.1(2021 年 11 月)引入枚举、Fibers、只读属性
- PHP 8.2(2022 年 12 月)引入只读类、DNF 类型
- PHP 8.3(2023 年 11 月)引入类型化类常量、
json_validate - PHP 8.4(2024 年 11 月)引入属性钩子、非对称可见性
每年一个大版本,每个版本都有实质性语言特性更新。 这不是"维护性更新",这是持续的语言演进。
PHP 的发布节奏比大多数"现代"语言都稳定。Python 3.x 的 major version 间隔是 1-2 年,PHP 也是。但 PHP 的每个版本都带语言级的新特性,而 Python 的很多版本只是库更新。
"PHP 已死"为什么是错的
论点 1:市场份额不是主观判断
W3Techs 的数据:截至 2026 年,PHP 驱动着全球 76.5% 的服务端网站。第二名是 ASP.NET,占 6.5%。这不是"还有很多老网站用 PHP"——这是"绝大多数网站用 PHP"。
WordPress、Drupal、Magento、MediaWiki——这些不是"遗留系统",它们是各自领域的主流选择。WordPress 一个项目就驱动了全球 43% 的网站。
论点 2:语言演进速度不输"现代"语言
PHP 8.x 系列的演进速度:
| 特性 | PHP 引入年份 | 对比 |
|---|---|---|
| JIT 编译器 | 2020 | Python 至今没有 |
| 枚举类型 | 2021 | Java 16 (2021) 同年 |
| Fibers | 2021 | Python asyncio 2014 但更早 |
| 只读属性 | 2021 | C# 9 (2020) 接近 |
| 属性钩子 | 2024 | C# 一直有,Kotlin 一直有 |
PHP 不是在追赶,PHP 是在走自己的路。属性钩子的设计甚至比 C# 的 property 更简洁。
论点 3:生态比语言本身更重要
PHP 的杀手锏不是语言特性,是生态。Laravel 的文档质量、Symfony 的组件复用性、Composer 的依赖管理——这套生态经过 20 年打磨,成熟度远超大多数新兴语言的生态。
一个语言"死不死",不取决于论坛上的口水战,取决于有没有人在用它解决真实问题。PHP 每天驱动着全球 76.5% 的网站,这个数字在过去 10 年几乎没有下降。
一个更深的问题
"PHP 已死"的叙事之所以持续传播,是因为它满足了一种心理需求:技术优越感。
用 Rust 的人觉得 PHP 死了。用 Go 的人觉得 PHP 死了。用 Node.js 的人觉得 PHP 死了。但当你打开任何一个真实的生产环境——银行、电商、医院、政府——你会发现 PHP 在那里跑着,安静地处理着每天数十亿的请求。
"PHP 已死"是一个技术品味信号,不是一个事实判断。 它告诉你说话者偏好什么技术栈,但没告诉你 PHP 实际在做什么。
PHP 解释器源码在 GitHub Trending 上,不是因为 PHP 突然变酷了。是因为有一群核心贡献者——Nikita Popov、Ilija Tovilo、Gina Peter Banyard——每年都在往这个 30 年的代码库里加新特性。他们不在乎"PHP 已死"的叙事,他们在写代码。
判断一个技术死没死,不要看论坛,看 commit log。
仓库地址:php/php-src
PHP 8.4 RFC:wiki.php.net/rfc
构建 PHP:
./buildconf && ./configure --enable-debug && make -j4
讨论回复
加载中...正在加载回复...
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。