PHP过时了?为什么还有这么多人在用
经常看到有人问:php是不是已经过时了?可实际项目里又到处都在用,这是咋回事?
要回答这个问题,得先搞清楚一件事:说PHP过时的人看的是最近五年的技术趋势,说PHP广泛应用的人看的是过去三十年积累下来的东西。两拨人说的都对,只是站在不同的时间点上。
我在行业里待了快十年,今天用PHP三十年的发展历程来聊聊这事。看完这条时间线,你就明白它为啥一边被嘲笑,一边还被这么多人用了。
1995-2004:草莽时代,PHP赢在够用就行
PHP诞生于1995年,创造者拉斯马斯·勒德尔夫最开始只是写了几行Perl脚本,想追踪自己简历网站的访问量,他把这套工具叫做Personal Home Page Tools(个人主页工具)。这个出身决定了PHP的基因:它从来就不是一门被精心设计的语言,而是一个解决具体问题的工具,慢慢长成了今天的样子。
这恰恰是它成功的原因。1990年代末到2000年代初,互联网刚火起来,大量不是科班出身的人涌进Web开发。他们要的不是优雅的类型系统或者高深的并发模型,而是一种能在共享主机上花五分钟部署、写几行代码就能从数据库读数据、生成网页的工具。PHP正好填了这个坑。
那会儿,Java要配置Servlet容器,Perl的语法让人头疼,Python的Web生态还没长起来。PHP的竞争策略说白了就四个字:门槛最低。新建一个.php文件,写上<?php echo "Hello"; ?>,上传到几乎任何一家主机商的服务器上,就能跑。不用编译,不用框架,不用部署流程。这种零门槛的开发体验,当时独一份。
拉斯马斯自己后来承认,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的选择很实在:马特·穆伦维格需要一个能在廉价共享主机上跑的博客系统,PHP加MySQL是当时成本最低的组合。Facebook的选择更随机:扎克伯格高中就会PHP,大学宿舍赶着上线,自然用了最熟的工具。两个看似偶然的技术选型,后来各自长成了庞然大物。
这个时期的PHP生态有多强?Discuz!论坛系统在国内几乎垄断了社区建站市场,PHPWind紧随其后。Drupal、Joomla瓜分了企业CMS市场。Zend Framework提供了企业级开发框架。Facebook证明了PHP能扛住亿级用户的流量。PHP官方文档里那句"PHP is the best language for web programming"(PHP是Web编程最好的语言)在这个阶段听起来并不夸张,因为在Web开发这个具体场景下,它确实是用户量最大、生态最完整、部署门槛最低的选择。
国内的情况更夸张。2008到2012年是PHP培训行业的黄金期,大量培训机构打着"三个月学会PHP月薪过万"的旗号招生。一批批转行者通过PHP进了互联网行业,靠WordPress、Discuz!、ThinkPHP这些工具养家糊口。"PHP是世界上最好的语言"在这个阶段,对很多人来说是真心话:这门语言确实改变了他们的人生。
但问题也在这个时期埋下了。PHP 5的语言设计确实粗糙,没有命名空间(5.3才加),没有Composer包管理(2012年才出现),面向对象支持半吊子,安全默认值过于宽松。大量培训班出身的开发者只会PHP一门语言,写出来的代码html和逻辑混在一起,SQL注入和XSS漏洞到处都是。PHP的口碑危机,根源不在语言本身,而在于它太容易上手,导致用户群体的水平参差不齐。
2012-2015:转折期,移动互联网改写了规则
2012年前后,两股力量同时冲击了PHP的地位。
第一股是移动互联网的崛起。智能手机普及后,App开发成了新的淘金场。原来做PHP网站的开发者开始转向iOS和安卓开发,或者转做提供JSON接口的后端,而这个场景下PHP的优势不再明显。Node.js在2009年诞生后迅速崛起,用一门JavaScript打通前后端的诱惑力极大。Ruby on Rails靠优雅的开发体验抢走了创业公司的心。Python在Django的加持下也在蚕食PHP的地盘。
第二股是技术社区话语权的转移。新一代开发者入行学的是JavaScript或Python,他们的技术博客、推特账号、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年泰勒·奥特威尔发布了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个百分点。泰勒·奥特威尔说现在大多数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没死,它变无聊了。无聊意味着稳定、可预测、经过验证。
丹·麦金利那篇经典的《选择无聊的技术》正好能解释这个现象。他提出了"创新代币"的概念:每家公司大概只有三个机会去用新技术,全花在基础设施上,产品创新就没余量了。他在Etsy的案例很有说服力:基于PHP、MySQL和Memcached构建的Activity Feeds(动态流),在几年内扩展了20倍,期间一次专门改造都没有。无聊的技术栈就是能用。
这就引出了PHP真正的竞争壁垒:不是语言特性,不是性能,而是三十年积累下来的基础设施锁定效应。地球上几乎每一家共享主机服务商都支持PHP,因为WordPress需要它。cPanel默认集成PHP管理。WordPress生态的经济规模据估算达到5967亿美元。Slack工程博客解释过他们为什么认真对待PHP。维基百科用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之父拉斯马斯说的另一句话倒是对的:"我一直在等有人写出点真正能替代它的东西,但一直没等到。"
这句话之所以成立,不是因为PHP多优秀,而是因为三十年的生态积累、基础设施惯性和用户基础,构成了一道后来者几乎跨不过去的护城河。技术会过时,但基础设施不会轻易消失。这就是PHP的真相。
本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!