说起编程圈的经典梗,”PHP 是世界上最好的编程语言”绝对能排进前三。每次有人在论坛上抛出这句话,底下的评论区都会瞬间变成大型辩论现场——PHP 开发者举杯庆祝,Python 和 JavaScript 阵营的人则忙着贴表情包。这句话到底是认真的还是反讽的?说实话,可能两者都是。

要理解这个梗的精髓,我们得先回到上个世纪九十年代,看看 PHP 到底是怎么来的。
一切始于一份在线简历
1994 年,一个出生在格陵兰岛的丹麦裔加拿大程序员 Rasmus Lerdorf,做了一件很普通的事:他想知道有多少人在看他的个人网页(说白了就是在线简历)。于是他用 C 语言写了一组 CGI 脚本来追踪访问量,并且把它命名为 “Personal Home Page Tools”,简称 PHP Tools。
对,PHP 最初就是 “Personal Home Page” 的缩写。一个追踪简历访客的小工具。谁能想到,这玩意儿后来会撑起大半个互联网呢?
1995 年,Rasmus 把 PHP Tools 的源码发布到了 Usenet 的 comp.infosystems.www.authoring.cgi 新闻组上,供大家自由使用。在那个互联网还很原始、浏览器功能极为有限的年代,PHP 填补了一个巨大的空白——让普通人也能轻松地给网页加上一些动态功能,比如访客计数器、留言板、表单处理之类的东西。
“我完全不知道怎么设计一门编程语言”

这句话不是别人说的,是 Rasmus Lerdorf 本人说的。原话是这样的:
“I don’t know how to stop it, there was never any intent to write a programming language… I have absolutely no idea how to write a programming language, I just kept adding the next logical step on the way.”
翻译过来就是:我从没打算发明一门编程语言,我完全不知道怎么设计编程语言,我只是不断地往上加下一个看起来合理的功能。
PHP 的演化历程完美诠释了什么叫做”有机生长”。它没有经过精心设计,没有学术论文作支撑,没有什么宏大的架构蓝图。Rasmus 最初的设想是把 PHP 当作一个简单的模板语言——在 HTML 里嵌入一小段代码来展示变量或函数的输出,而真正的业务逻辑还是用 C 来写。但全世界的开发者们集体否决了这个想法,大家直接把业务逻辑也塞进了 PHP 里。Rasmus 在 1999 年终于投降了,接受了 PHP 已经变成一门完整编程语言的事实。
到了 1997 年,以色列特拉维夫的两位程序员 Andi Gutmans 和 Zeev Suraski 觉得 PHP/FI 2.0 不够用,于是从头重写了解析引擎。他们和 Rasmus 联手,在 1998 年发布了 PHP 3.0——这才是我们今天认识的 PHP 的雏形。顺便一提,从这个版本开始,PHP 的缩写变成了一个递归缩写:PHP: Hypertext Preprocessor。程序员嘛,总是喜欢这种自指的幽默。
那些让人又爱又恨的”特色”
PHP 之所以成为梗的重灾区,很大程度上是因为它在设计上确实有不少……嗯,让人挠头的地方。
函数命名不一致,这大概是被吐槽得最多的点。比如字符串函数,有的用下划线分隔(str_replace),有的不用(strpos);有的参数是先传 haystack 后传 needle,有的反过来。据说早期版本中,函数名的长度甚至被用作内部哈希函数的输入,所以有些名字的选择纯粹是为了优化哈希分布,跟可读性完全无关。
弱类型系统在早期也是出了名的”宽容”。PHP 会在背后悄悄地做类型转换,有时候转换结果令人匪夷所思。经典的比较操作符 == 堪称”万物皆可相等”。
大小写不一致也是一个历史包袱。函数名不区分大小写,但变量名区分。Rasmus 解释说,因为 PHP 最初是一个嵌在 HTML(不区分大小写)里的模板语言,所以函数名自然也设计成了大小写不敏感。这个决定合理吗?在当时的语境下确实合理,但放到今天就显得格格不入了。
2012 年,一篇名为 “PHP: a fractal of bad design” 的博客文章横空出世,把 PHP 的种种设计问题从头到尾梳理了一遍,堪称 PHP 黑历史的集大成之作。这篇文章在开发者社区引起了巨大反响,也让”黑 PHP”变成了一种亚文化。
原文:https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design
然而,互联网的大半壁江山都是 PHP 打下来的

讽刺的是,就是这样一门被无数人嘲笑的语言,至今仍然是服务器端编程的绝对霸主。根据 W3Techs 的数据,截至 2025 年初,在所有已知服务器端编程语言的网站中,PHP 的占比约为 74.5%。对,你没看错,将近四分之三。
这个数字背后最大的功臣是 WordPress。这个基于 PHP 构建的内容管理系统驱动着互联网上约 43% 的网站,占 CMS 市场份额的 60% 以上。再加上 Joomla、Drupal 等其他 PHP 驱动的 CMS,PHP 在网站领域的统治地位几乎无可撼动。
除了 WordPress 的生态之外,许多你每天都在用的大型网站也建立在 PHP 之上:Facebook(虽然后来开发了 Hack 和 HHVM,但根基是 PHP)、Wikipedia、Slack、Etsy、Pinterest、Tumblr……这份名单还可以继续拉很长。Rasmus 曾经亲自审查过早期 Facebook 的 PHP 代码,他的评价是:”代码是一场灾难,到处都是错误,写得糟糕透顶。但是——它能跑,而且跑得挺好。” Facebook 后来变成了一家市值上千亿的公司。这就是 PHP 的哲学:不优雅,但管用;不完美,但能让你快速把想法变成产品。
“世界上最好的编程语言”——一个薛定谔的梗
所以,”PHP 是世界上最好的编程语言”这句话到底什么意思?
如果你把它当成一个纯技术判断,那显然站不住脚。PHP 在语言设计的严谨性上确实比不上 Python、Rust 或 Haskell。但如果你从另一个角度看——什么语言让最多的人以最低的门槛建起了自己的网站?什么语言养活了最多的开发者?什么语言在被宣告”已死”了无数次之后依然活蹦乱跳?答案都指向 PHP。
这个梗之所以经久不衰,是因为它精准地捕捉到了程序员社区的一种集体心理:我们一边嫌弃 PHP,一边靠它吃饭。正如有人总结的那样——”开发者嘴上说着’PHP 真烂,别让我碰那玩意儿’,转头就打开 Laravel 开始写代码,然后安安静静地用 PHP 赚钱养家。” 这种”嘴上嫌弃、身体诚实”的关系,大概是程序员文化中最有趣的现象之一。
现代 PHP:那个”烂”语言已经今非昔比
值得一提的是,今天的 PHP 跟十年前甚至五年前的 PHP 已经是两种东西了。PHP 8.x 引入了大量现代特性:命名参数、属性(Attributes)、枚举类型、联合类型、交叉类型、只读属性、Fibers(轻量级并发)、JIT 编译……这些特性让 PHP 越来越像一门”正经”的现代编程语言。
框架生态也日益成熟。Laravel 已经成为最受欢迎的 PHP 框架之一,提供了优雅的语法和强大的功能;Symfony 则以其组件化的架构在企业级应用中占据重要地位。Composer 包管理器和 Packagist 仓库让 PHP 的依赖管理变得和 npm、pip 一样方便。2021 年成立的 PHP Foundation 也在确保这门语言能够持续健康地发展下去。
换句话说,很多人对 PHP 的印象还停留在 mysql_query("SELECT * FROM users WHERE password = '" . $_GET['password'] . "'") 的黑暗时代。那个时代确实很糟糕。但那个时代已经过去了。
尾声
PHP 的故事,本质上是互联网本身的故事——草根、混乱、实用主义至上。它不是在象牙塔里设计出来的完美语言,而是在真实的需求中野蛮生长出来的生存工具。它身上有无数的伤疤和补丁,但正是这些痕迹记录了 Web 从蛮荒走向繁荣的全过程。
所以下次有人问你”PHP 是不是世界上最好的编程语言”,你可以笑着回答:不是——但也许它是世界上最成功的”意外”。
一个格陵兰岛程序员为了追踪简历访客而写的小脚本,三十年后还在驱动着大半个互联网。这本身就挺浪漫的,不是吗?

发表回复