2026国际交通工程、智能交通技术与设施展览会距开展还有54

语言 EN
为什么都说 PHP 已经「过时」了,但在实际项目中仍广泛应用?
2026-02-15 09:32|阅读:21

为什么都说 PHP 已经「过时」了,但在实际项目中仍广泛应用?

要回答这个问题,你得先搞清楚一件事:PHP 的「过时」和 PHP 的「广泛应用」发生在完全不同的时间尺度上。 说它过时的人看的是最近五年的技术趋势,说它广泛应用的人看的是过去三十年积累下来的基础设施。这两拨人都没说错,只是各自站在历史的不同切面上。

作为一个在行业里待了快十年的开发者,我想用 PHP 三十年的演化史来回答这个问题。看完这条时间线,你自然就明白为什么它同时被嘲笑和被依赖了。

1995-2004:草莽时代,PHP 赢在「够用就行」

PHP 诞生于 1995 年,创造者 Rasmus Lerdorf 最初只是写了一组 Perl 脚本来追踪自己在线简历的访问量,他把这套工具叫做 Personal Home Page Tools。这个出身决定了 PHP 的基因:它从来就不是一门被精心设计的语言,而是一个解决具体问题的工具不断长大的产物。

这恰恰是它成功的原因。1990 年代末到 2000 年代初,互联网正处于爆发期,大量非科班出身的人涌入 Web 开发。他们需要的不是优雅的类型系统或精妙的并发模型,而是一种能在共享主机上花五分钟部署、写几行代码就能从数据库读数据渲染成 HTML 的工具。PHP 完美地填了这个坑。

同一时期,Java 需要配置 Servlet 容器,Perl 的语法让人头疼,Python 的 Web 生态还远未成熟。PHP 的竞争策略说白了就四个字:门槛最低。新建一个 .php 文件,写上 ,上传到几乎任何一家主机商的服务器上,就能跑。没有编译步骤,没有框架依赖,没有部署流程。这种零摩擦的开发体验,在当时是独一份的。

Rasmus Lerdorf 自己后来承认,PHP 的很多设计问题源于这个时期。比如那个著名的函数参数顺序混乱(strpos($haystack, $needle)array_search($needle, $haystack) 参数反着来),原因是早期函数哈希机制直接用的 strlen(),函数名长度不同就分到不同的桶里,所以参数顺序是按函数名长度来「优化」的。1990 年代的实现细节,变成了永久的 API 设计,一直沿用到今天。

这个阶段给 PHP 埋下了两颗种子:一颗是海量的用户基础,另一颗是技术债。 后面三十年的故事,就是这两颗种子各自生长的结果。

2004-2012:黄金时代,「PHP 是最好的语言」曾经是认真的

2004 年发生了两件改变 PHP 命运的事:WordPress 发布了 1.0 版本,Facebook 在哈佛宿舍里上线。这两个项目都选择了 PHP,各自的原因不同,但共同把 PHP 推上了 Web 开发的统治地位。

WordPress 的选择很务实:Matt Mullenweg 需要一个能在廉价共享主机上运行的博客系统,PHP + MySQL 是当时成本最低的组合。Facebook 的选择更随机:扎克伯格在高中时就会 PHP,大学宿舍里赶着上线,自然用了最熟的工具。两个看似偶然的技术选型,后来各自长成了庞然大物。

这个时期的 PHP 生态有多强?Discuz! 论坛系统在国内几乎垄断了社区建站市场,PHPWind 紧随其后。Drupal、Joomla 瓜分了企业 CMS 市场。Zend Framework 提供了企业级开发框架。Facebook 证明了 PHP 能扛住亿级用户的流量。PHP 官方文档里那句 "PHP is the best language for web programming" 在这个阶段听起来并不夸张,因为在 Web 开发这个具体场景下,它确实是用户量最大、生态最完整、部署门槛最低的选择。

国内的情况更甚。2008 到 2012 年是 PHP 培训行业的黄金期,大量培训机构以「三个月学会 PHP 月薪过万」为卖点招生。一批批转行者通过 PHP 进入了互联网行业,靠着 WordPress、Discuz!、ThinkPHP 这些工具养家糊口。「PHP 是世界上最好的语言」在这个阶段,对很多人来说带着真诚的感激:这门语言确实改变了他们的人生轨迹。

但问题也在这个时期埋下了。PHP 5 的语言设计确实粗糙,没有命名空间(5.3 才加),没有 Composer 包管理(2012 年才出现),OOP 支持半吊子,安全默认值过于宽松。大量培训班出身的开发者只会 PHP 一门语言,写出来的代码 HTML 和逻辑混在一起,SQL 注入和 XSS 漏洞遍地。PHP 的口碑危机,根源不在语言本身,而在于它太容易上手导致了用户群体的质量分布极度不均匀。

2012-2015:转折期,移动互联网改写了游戏规则

2012 年前后,两股力量同时冲击了 PHP 的地位。

第一股是移动互联网的崛起。 智能手机普及后,App 开发成了新的淘金场。原本做 PHP 网站的开发者开始转向 iOS 和 Android 开发,或者转做提供 JSON API 的后端,而这个场景下 PHP 的优势不再明显。Node.js 在 2009 年诞生后迅速崛起,用一门 JavaScript 打通前后端的诱惑力极大。Ruby on Rails 凭借优雅的开发体验抢走了创业公司的心智。Python 在 Django 的加持下也在蚕食 PHP 的地盘。

第二股是技术社区话语权的转移。 新一代开发者入行学的是 JavaScript 或 Python,他们的技术博客、Twitter 账号、GitHub 项目天然偏向这些语言。PHP 在 Hacker News 和 Reddit 上逐渐成了被嘲讽的对象。那个经典的论坛段子(某女说你能让论坛吵起来就跟你走,程序员喊「PHP 是最好的语言」,论坛炸锅)大约也是这个时期广泛传播开来的。「PHP 是最好的语言」从一句带着自信的自述,变成了一句讽刺。 梗的含义反转了,但 PHP 服务器上跑的请求量几乎没变。

国内的变化更剧烈。微信的崛起重新定义了移动互联网,App 开发如火如荼,Java 在后端的统治地位随着 Spring Boot 的成熟越来越稳固。Go 语言借着 Docker 和云原生的东风开始吸引关注。一线城市的 PHP 岗位开始萎缩,大量 PHP 开发者被迫转型。Discuz! 的没落更是让国内 PHP 社区丧失了一个重要的应用场景。

但在舆论的喧嚣之外,一件安静的事情正在发生。

2015-2020:静默革命,PHP 在嘲笑声中完成了蜕变

2015 年 12 月,PHP 7.0 发布。这可能是 PHP 历史上最重要的一次版本升级,但在技术媒体的报道量上远不如一个新 JavaScript 框架的发布。

PHP 7 带来了 2 到 4 倍的性能提升,内存消耗降低了 50%。这不是微调,而是架构层面的重构,核心引擎 Zend Engine 3.0 重写了底层数据结构。实际案例很能说明问题:Tumblr 的延迟直接减半,Badoo 释放了大约 300 台服务器(年省 10 万美元),WordPress 的基准测试从 PHP 5.6 的每秒 49 个请求跳到 PHP 7.0 的 134 个。

更重要的是生态的蜕变。2011 年 Taylor Otwell 发布了 Laravel,到 2015 年它已经成为 PHP 社区最受欢迎的框架。Laravel 带来了一种全新的 PHP 开发体验:优雅的路由系统、Eloquent ORM、Blade 模板引擎、内置的队列和事件系统。如果说 PHP 5 时代的典型代码是 HTML 里混着 SQL 查询,那么 Laravel 时代的 PHP 代码和任何一门现代语言的 MVC 框架放在一起都不会显得寒酸。

2012 年 Composer 包管理器的诞生是另一个分水岭。在此之前,PHP 的代码复用基本靠复制粘贴和 PEAR(一个几乎没人喜欢的包管理系统)。Composer + Packagist 让 PHP 终于有了现代的依赖管理,整个生态的工程化水平在几年内完成了质的飞跃。

但这场革命几乎没有进入大众技术讨论的视野。原因很简单:PHP 开发者在忙着干活,而不是在社交媒体上传教。 Node.js 社区每出一个新框架都会上 Hacker News 头条,PHP 社区把 Zend Engine 的底层数据结构全部重写了性能翻倍,却连一条热帖都没有。这种沉默的工程文化,既是 PHP 社区的美德,也是它舆论被动的根源。

2020-2026:现代 PHP 和它的身份困境

PHP 8.x 系列把语言特性拉到了真正的现代水平。PHP 8.0(2020 年)加了 JIT 编译器、联合类型、命名参数、match 表达式和属性注解。PHP 8.1 引入了枚举和 Fibers(协作式并发)。PHP 8.2 有只读类。PHP 8.3 带来了类型化类常量。2024 年 11 月发布的 PHP 8.4 加入了 property hooks 和非对称可见性,直接在属性上定义 get/set 逻辑,干掉了一大类样板代码。综合基准测试显示,PHP 8.1 比 PHP 5.6 快大约 4.2 倍

根据 W3Techs 2026 年 2 月的数据,55.9% 的 PHP 网站已经运行在 PHP 8 上,PHP 7 占 34.8%,还赖在 PHP 5 的只剩 9.1%。社区的大多数已经完成了向现代版本的迁移。

Laravel 拿到了 Accel 领投的 5700 万美元 A 轮,这是它成立 13 年来第一次接受外部投资,目前驱动着超过 150 万个网站。根据 JetBrains 2024 年的调查,61% 的 PHP 开发者使用 Laravel。PHPStan(静态分析工具)的采用率在 2025 年跳到了 36%,同比增长 9 个百分点。Taylor Otwell 说现在大多数 PHP 开发者都倾向于强类型应用。

把 2024 年的 PHP 8.4 和 2004 年的 PHP 4 放在一起比,就像把现在的 Swift 和 Objective-C 1.0 放在一起比一样荒谬。 但很多人对 PHP 的认知确实还停留在 2004 年。

与此同时,PHP 的数据呈现出一种诡异的「分裂」。W3Techs 显示 72.2% 的已知服务端网站跑的是 PHP,WordPress 驱动着全球 42.8% 的网站。但 TIOBE 2026 年 2 月的前十名里已经找不到 PHP 了,Go 取而代之,TIOBE 官方的措辞是 PHP「正式告别了前十」。PYPL 指数上 PHP 的搜索份额从 2008 年的 20% 跌到 3.14%。Stack Overflow 2024 年调查里只有 15.2% 的新程序员选择 PHP 入门。

这组数据的矛盾本质上是历史的矛盾:三十年积累的基础设施还在稳定运行,但新增量已经在流向其他语言。 全球 520 万到 650 万 PHP 开发者仍然是 Node.js 群体的两到三倍,WordPress 生态的插件目录有超过 61000 个免费插件,WooCommerce 活跃安装量超过 800 万。这不是一个正在死去的生态的样子。

三十年的历史告诉我们什么

站在 2026 年回望 PHP 的三十年,能看到一个清晰的模式:PHP 的每一次「死亡预告」都对应着一次新技术浪潮的兴起,而不是 PHP 自身的衰退。

Ruby on Rails 火的时候,PHP 要死了。Node.js 火的时候,PHP 要死了。Go 和 Rust 火的时候,PHP 又要死了。每次唱完,PHP 的实际部署数据几乎纹丝不动。DreamHost 的一篇分析说得很直白:技术圈把「无聊」和「死了」搞混了。Full Scale 的 CEO 说得更到位:PHP 没死,它变无聊了。无聊意味着稳定、可预测、经过验证。

Dan McKinley 那篇经典的 Choose Boring Technology 正好可以解释这个现象。他提出了「创新代币」的概念:每家公司大概只有三个机会去使用新技术,全花在基础设施上,产品创新就没余量了。他在 Etsy 的案例很有说服力:基于 PHP、MySQL 和 Memcached 构建的 Activity Feeds,在几年内扩展了 20 倍,期间零次针对性改造。无聊的技术栈就是能用。

这就引出了 PHP 真正的竞争壁垒:不是语言特性,不是性能,而是三十年积累下来的基础设施锁定效应。地球上几乎每一家共享主机服务商都支持 PHP,因为 WordPress 需要它。cPanel 默认集成 PHP 管理。WordPress 生态的经济规模据估算达到 5967 亿美元。Slack 工程博客解释过他们为什么认真对待 PHP。Wikipedia 用 PHP 支撑每月 110 亿次页面浏览。想让 PHP 死掉,你得先让近半个互联网完成技术迁移,这个工程量,任何有工程经验的人都知道意味着什么。

当然,历史视角也能清楚地看到 PHP 真正的软肋。AI 和机器学习是 PHP 缺席最彻底的领域,Python 有 TensorFlow、PyTorch、scikit-learn,PHP 什么都没有,而且大概率不会有。Serverless 场景对 PHP 不友好,主流 FaaS 平台原生不支持它。在微服务和实时通信这些方向上,Go 和 Node.js 的生态更成熟。有分析指出,对 PHP 最大的威胁是未来十年的 Web 正在用 Python 写。这话有些夸张,但方向上没错。

PHP 的未来最可能的走向,是从「Web 开发的默认选项」收窄为「内容管理和电商的最佳选项」。 它的统治领域在缩小,但在剩下的领域里,它的统治力依然无人能撼动。

回到最初的问题

所以 PHP 过时了没有?

如果你拿 2004 年的 PHP 4 来说,它确实过时了。但 2004 年的 PHP 4 和 2024 年的 PHP 8.4 之间隔着二十年的进化,把前者的标签贴到后者身上,不公平。

如果你问新项目还应不应该选 PHP,答案取决于场景。做内容管理、电商、传统 Web 应用?PHP + Laravel 可能是 2026 年投入产出比最高的选择。做 AI 应用、实时系统、高性能微服务?确实该看别的。

如果你问「PHP 是世界上最好的语言」这句话对不对,答案很简单:它从来就不对,但 PHP 之父 Rasmus Lerdorf 说的另一句话倒是对的:「我一直在等有人写出点真正能替代它的东西,但一直没等到。」

这句话之所以成立,不是因为 PHP 多优秀,而是因为三十年的生态积累、基础设施惯性和用户基础,构成了一道后来者几乎无法逾越的护城河。技术会过时,但基础设施不会轻易消亡。这就是 PHP 的真相。