1. “PHP已死”这句话,到底骗了多少人
做PHP这几年,我听过最离谱的话就是“PHP已死”。这句话在技术圈流传了十几年,每隔一阵就被翻出来炒一次冷饭。你说它完全没依据吧,确实有些人离开PHP转投其他语言了,你说它有道理吧,可市面上大量网站、管理系统、电商平台,后端跑的还是PHP。我身边靠PHP吃饭的人,从做外包的到在大厂维护老系统的,没有一个因为PHP要死了而失业,反而是那些天天盯着“PHP要死了”的人,慢慢把自己的职业生涯熬死了。
先说句公道话:任何一门语言,只要还有人用它赚钱,它就没死。PHP死了吗?没有。那为什么总有人喊它死了?因为喊“死”的往往是这几类人:一种是压根不写PHP、靠贩卖焦虑赚流量的自媒体;一种是刚学了两天Python就觉得PHP不高级的初学者;还有一种是自己PHP没学明白、跳槽失败,把锅甩给语言本身的老哥。
“PHP已死”这个词,本质上不是技术判断,而是一种情绪表达。它传递的不是“PHP不可用”,而是“你还在用PHP,你过时了”。这招对于缺乏安全感、依赖他人认可的程序员,特别管用。你今天在网上附和一句“PHP确实不行了”,明天就会有人给你科普Go和Rust多香,后天你就开始怀疑自己是不是选错了行。问题是,你连PHP都还没写明白,换语言能解决什么问题呢?
我在面试中见过不少这样的简历:写了三年PHP,项目经验里全是CRUD,问他框架底层原理,答不上来;问Composer怎么用,说“没用过”;问PHP 8的新特性,直接愣住。然后他告诉我,他准备转Go了,因为PHP没前途。我当时的感受是:这不是PHP没救了,是这个人的职业生涯没救了。换语言解决不了“基础不牢”的问题,只会把一个平庸的PHP程序员变成一个平庸的Go程序员。
这也正是这篇文章想说的核心:真正决定程序员结局的,从来不是语言本身,而是面对争议时的认知能力和行动方式。如果你每天花大量时间坚信PHP已死,你其实是在用“语言选择”掩盖“能力焦虑”,用“行业判断”替代“个人进步”。长此以往,结局差是必然的。
2. 坚信“PHP已死”的人,到底在为什么买单
2.1 注意力错配:你的关注点决定你的成长曲线
程序员嘛,靠本事吃饭,本事怎么长?靠项目积累、靠读源码、靠调试排错、靠持续学习。可如果你每天上班第一件事是刷论坛里“PHP是不是已经凉了”的帖子,下班后还要在评论区跟人对线三小时,你的有效学习时间在哪里?时间花在哪里,成就就在哪里。这句话很朴素,但越到后来我越觉得它是真理。
我举一个很直观的例子。我认识两个PHP程序员,同年入行,基础差不多。A每天会花半小时看PHP官方RFC、每周撸一段框架源码,周末偶尔写点小工具;B每天花半小时刷“PHP已死”相关讨论,看到唱衰贴就来劲,转发到群里再加一句“完了,咱得早做打算”。三年后,A已经能独立设计一套支撑百万级用户量的API架构,薪资翻了两倍;B还在到处问“为什么我的nginx配了伪静态还是不生效”,薪资只涨了百分之五。你说A和B的差距是语言带来的吗?不是。是注意力的复利效应带来的。
唱衰是成本最低的娱乐方式。它不需要你写一行代码、不需要你查一个文档,只需要你点个赞、转发一下,就能获得一种“我看穿了行业趋势”的廉价成就感。但技术人最怕的恰恰就是这种廉价成就感,它会慢慢腐蚀你的行动力,让你以为“看透了”就等于“做到了”。
2.2 认知固化:预设结论的思考方式是最危险的
坚信PHP已死的人,通常有一个共同的思维模式:先得出结论,再找证据。他认定PHP不行了,然后看到某个大厂去PHP化(哪怕那只是个别团队的局部调整),他就说“你看,果然吧。”看到TIOBE指数上PHP排名降了一位,他说“完了,PHP真的在衰落。”但你让他看PHP 8.3的发布说明,他会说“有什么好看的,反正要死了”。
这种思维方式的恐怖之处在于,它会封闭你的信息摄入通道。人一旦预设了结论,就会自动过滤掉反面的信息,只留下支持自己的信息。你会选择性失明——
- 你看不到PHP依然支撑着WordPress(全球四成以上网站使用)的事实;
- 你看不到Laravel、Symfony这些现代PHP框架依然在GitHub上有极高的活跃度;
- 你看不到大量中小企业的管理系统、接口服务、电商后端用的还是PHP;
- 你看不到PHP 8.4在性能上已经进步到让很多传统“PHP慢”的刻板印象完全失效。
其实认知固化这件事,放哪个行业都一样。做投资的如果只看空头消息,早晚会错过真正的增长点;做产品的如果只信“赛道已经死了”,就没法看见细分需求里的机会。程序员作为技术从业者,掌握一手事实、保持开放心智,这是基本素养。你天天喊着PHP已死,本质上和“微信要被XX取代了”“电脑要被平板取代了”这类判断一样,都是把现象当本质、把情绪当分析的偷懒行为。
2.3 逃避型职业策略:把外部原因当成自己的安全垫
心理学里有一个概念叫“自我妨碍”——人为了给失败预留借口,会主动制造一些外部障碍。你说“PHP已死”,潜台词就是:“将来如果我混得不好,不是因为我不努力,是因为我选错了语言。”这种行为,短期能让你心里好受,长期却是在摧毁自己的职业责任感。
我记得有个读者在后台跟我聊了很久,说他在一个小公司写PHP,公司业务一般,工资一般,他把自己不如意的原因全部归结为“PHP不行”。我问他:公司为什么业务一般?他说产品没竞争力。我再问:那你有没有为产品做过技术改进?他说没有,老板不要求。我说你看,问题根本不在PHP。如果明天你们公司换成Java或Python,业务还是那个业务,产品还是那个产品,影响大吗?他沉默了。
选错赛道的情况有没有?肯定有。比如某些领域Java确实生态更成熟、岗位更多,这是事实。但这不是一个“只需要换语言”的问题,而是一个“职业与市场匹配度”的问题。把锅全甩给语言,是最轻松但最无效的应对。真正的做法是勇敢盘点自己的能力短板、结合市场需求做增量学习,而不是通过坚信一个技术“已死”来逃避现实。
3. PHP的真实处境:用数据和事实告别偏见
3.1 从市场份额到招聘需求:PHP的底子比你想象的厚
先看几个硬指标。根据W3Techs长期跟踪的数据,PHP在服务端编程语言中的市场占比长期在70%以上(按网站数量计算)。这是什么概念?你随机打开一千个网站,有七八百个的后端跟PHP有关。当然,有人会说这里面很多是老系统、是模板站,可老系统也需要人维护、模板站也需要人二次开发,这些需求就是PHP程序员的饭碗。
再看GitHub、Stack Overflow和各类招聘平台的数据,PHP虽然没有当年“Web开发首选”的绝对领先地位,但一直稳定在需求量的第一梯队。国内一二线城市的招聘平台上,PHP工程师的需求量或许比Java少,但远没有到“无人问津”的地步。尤其是在电商、外包、独立站、CRM/ERP开发等领域,PHP依然是当之不愧的主力军。
不要小看“老系统维护”这个市场。很多大公司核心系统跑PHP跑了十年八年,跑得很稳、效率也不差,公司不可能为了“Java更流行”就把系统重写一遍。重写系统的成本是巨大的,风险是可怕的。这些系统的存在,意味着PHP工程师有一种天然的稀缺价值——你懂PHP,你就具备接手这些系统、维护这些系统、迁移这些系统的能力。市场会为一个能稳定产出价值的工程师付钱,而不是为一个“只会最新语言”的工程师付钱。
3.2 PHP 8之后的版本进化:它的性能早就不落后了
很多唱衰PHP的人,脑子里对PHP的印象还停留在PHP 5时代:变量开头带个美元符号,函数命名混乱,跑得慢,显得Low。但事实上,PHP从7.x版本开始就对Zend引擎做了彻底重构,到了PHP 8.0引入了JIT(即时编译)之后,性能已经大幅拉升。
让我用一个非常直观的对比来说:PHP 8.3版本在某些基准测试下的处理能力,比PHP 5.6提升了三倍以上。跑同样的对称加密算法、同样的字符串解析任务,PHP 8.x的耗时远远低于老版本,在特定场景甚至可以叫板一些以性能著称的语言。更关键的是,PHP 8.x加入了命名参数、构造器属性提升、枚举、只读属性、强类型支持等现代化语言特性,让代码可以写得既简洁又严谨。Laravel 11和Symfony 7这些现代框架也充分利用了新特性,开发效率和运行性能都在线。
我近两年做的项目中,PHP 8.2/8.3配合Swoole或RoadRunner做常驻内存服务,能把传统PHP-FPM模式下的吞吐量提升一个数量级。很多年前“PHP只能跑短请求、一请求一生命周期”的瓶颈,在常驻模式下已经被有效缓解。说句实话,如果一个人连PHP 8的这些变化都不知道,就一口咬定PHP已死,那他跟“年纪大了所以跟不上时代”的老人有什么区别?不,区别在于老人是年纪大了,而他是自己关上了学习的大门。
3.3 AI时代,PHP反而是被低估的收益者
今年大家都在聊AI会不会取代程序员,尤其是初级程序员,热搜词里“AI或将取代初级程序员”这个话题我刷到过好几次。我的观点是:AI取代的不是程序员,而是“不会用AI的程序员”。这一点放到PHP程序员身上,反而有个有意思的结论。
因为PHP的语法相对简单、生态历史悠久,网上有海量的参考代码和最佳实践语料,这使它在被AI辅助编码时表现相当好。我在日常开发里大量使用AI来提速:写一个复杂的数组处理逻辑,让AI生成初稿,我负责review关键分支;遇到报错信息,丢给AI让它帮忙排查原因;甚至可以用AI辅助分析某个老接口的调用链路。这些操作让我的开发效率提高了很多,可替代性反而降低了。
顺便提一下,热搜里“黑马程序员 springai+deepseek大模型应用开发实战”这类词很火,这说明AI辅助开发已经是实打实的技能需求了。一个PHP程序员,如果他懂得用AI来辅助调试、生成单元测试、补充文档,他的产出效率不会比任何语言阵营的程序员低。而一个整天沉浸于“PHP已死”情绪里的人,大概率连Copilot这类工具都懒得装,自然也体会不到AI带来的开发范式改变。到头来,不是AI淘汰你,也不PHP淘汰你,是你自己的抗拒心态把机会挡在了门外。
4. 面对“PHP已死”的正确姿势:两耳不闻Delphi,一心做好手中事
4.1 把宝贵的关注力从“要不要换语言”转移到“如何把当前技术栈用透”
我特别想对所有PHP程序员说一句话:你在的地方就是你的战场。既然你现在靠PHP吃饭,那就把PHP吃透,而不是一边拿着PHP的工资,一边琢磨Go和Rust有多好。这里的“吃透”不是指会用Laravel就行,而是要尽量深入——
- 搞懂PHP-FPM和常驻内存模式的区别以及适用场景;
- 搞懂Composer的自动加载机制和依赖解析原理;
- 搞懂OPcache的工作机制,明白为什么生产环境必须开启OPcache;
- 搞懂PDO预处理为何能有效防御SQL注入,搞清楚其中的协议层逻辑;
- 能看懂主流框架的容器、门面、中间件源码,而不是纯粹的调用者。
这些深度技能的积累,真正决定了你在技术市场的议价能力。语言只是一个载体,你借由PHP习得的架构思维、性能调优能力、工程化经验,是可以迁移到任何技术栈的。这也是为什么很多优秀PHP程序员后期转Go、转Java也毫不费力的原因——不是因为Go学起来快,而是因为人家在PHP阶段练就的基本功本来就扎实。
4.2 想转型可以,但要带着存量技能去转,而不是带着情绪去逃
如果看完全文你依然想学一门新语言,我举双手赞成。多一把锤子永远不会错,关键是转型的姿势。
我见过太多“先把自己贬低到尘埃里再出发学新语言”的人,这类人通常半年后新语言没学会,PHP也丢了,两头发空。我也见过一早就规划“我以PHP维持现金流,同时用业余时间学Go做云原生方向”的人,这类人反而转型得稳稳当当。
具体来说,一个想转型的PHP程序员,建议按下面这个节奏来推进:
- 先盘点当前PHP技能中最有市场价值的部分(比如你熟悉电商支付对接、熟悉高并发秒杀方案、熟悉微服务拆分),把它们打包成你的“存量资产”。
- 选一个和PHP工作有关联的新技能方向入门。比如PHP里做接口通信比较多,你就可以学gRPC、学API网关概念;PHP里做数据处理比较慢,你可以学队列系统Redis/Kafka的底层原理。这样新旧知识可以互相加持,而不是完全割裂。
- 用“项目带动学习”的方式做小步快跑——写一个PHP+Go混合部署的小工具,让两个语言在同一项目中协作,逐步培养新语言手感。
- 等新技能可以创造明显价值了,再考虑正式切换技术栈。而不是靠脑补“新语言一定更香”来决策。
带着存量技能转型,你的新方向就像是“旧地图上长出新路线”,每一步都有锚点;带着情绪逃难式转型,你的新方向就是一个没有坐标的陌生海域,翻船概率极高。
4.3 维护一个“技术圈清醒脑”:如何在噪音环境里保持独立判断
说一千道一万,“PHP已死”只是技术圈无数噪音中的一种。今天有人说PHP死了,明天就有人说Java卷死了,后天可能又有人说前端已死、测试已死、运维已死。要是每天都信这些,程序员这职业都不用干了,大家集体改行种地算了。
我的做法是:建立一套自己的“技术判断框架”,看任何一个负面论调时先问三个问题——
- 第一,这个论调的发出者,自己靠这个技术赚到过大钱吗?如果他只是个自媒体写手,从不写代码,那他的话连参考价值都很低。
- 第二,他说的现象是局部事实,还是全局趋势?“某公司把核心服务从PHP迁到了Java”,这是局部事实;只有当你看到大面积、持续性的企业弃用潮时,才有资格说趋势。
- 第三,如果这个技术真的要衰退了,它衰退的时间窗口是多长?就算PHP十年后真的在萎缩,那也是十年间缓慢发生的事,这十年够你沉淀多少跨领域能力?足够你完成从容转型了。
用这三个问题过滤一遍,你会发现99%的“PHP已死”言论都是站不住脚的。技术的世界更像一个森林,有些树长得快、有些树活得久,你不能因为一棵树长得慢就说它要死了。PHP不是一棵病树,它是一棵根系极深的老树,新枝嫩芽也在冒,只不过你不愿意抬头看罢了。
5. 常见问题速查:来自PHP一线的踩坑记录与心态复盘
这些年我在学习和工作过程中,也踩过不少坑,在这里整理几个高频问题和应对思路,希望能帮到正处于迷茫期的PHP同行。
Q1:我所在的公司业务确实在下滑,是不是该趁早换Java/Python方向?
这种情况需要区分两个问题:公司业务下滑是行业普遍现象还是个别公司经营问题。如果是你所在公司的经营问题,那你应该更新简历找下家,而非急着转语言。如果你发现市场上PHP需求确实在减少(注意:你需要看全国性统计,而不是身边一两家公司的感受),则可以启动“双栈策略”——PHP保底,新语言增量学习。切记不要在没找到下家的情况下裸辞转语言,情绪化决策最容易翻车。
Q2:Laravel还是ThinkPHP?平时应该怎么选型?
国内面试和工作中,Laravel和ThinkPHP都有各自的受众。Laravel生态更现代、社区资源更丰富,Composer组件多用它;ThinkPHP在国内中小企业、外包项目中仍有大量存量,好找工作但容易让人陷入模板式开发。我的建议是:主攻Laravel,因为它更能培养现代化工程思维;同时保持对ThinkPHP的“能看懂”能力即可,不至于在维护老项目时卡壳。另外别忽略Symfony,它在欧洲市场非常主流,接远程单和出海项目时很加分。
Q3:PHP8都出好几年了,可公司还在用PHP5.6或7.0,我该怎么办?
这个太常见了。老项目不敢升PHP版本是现实,但不能因为公司不动,自己也跟着不动。你可以自己用Docker拉一个PHP8.3环境,把手头项目跑一遍,用静态分析工具找出老代码在新版本下的兼容问题,然后给公司写一份“升级可行性报告”。这既是技术活,又是展示主动性的机会。即便最后公司因为业务优先级不升,你在排查兼容性过程中对PHP版本差异的理解也会更深入,简历上也多了一行“主导PHP版本升级评估”。
Q4:AI工具生成代码越来越强,我觉得自己写代码没价值了?
这个焦虑我理解,但换个角度想:AI是放大器,不是替代品。它能写的只是“被写烂了的标准代码”,而那些需要结合业务场景做判断、权衡取舍、排查疑难杂症的活,AI短期很难完全替代。举个例子,AI能给你生成一堆Redis缓存代码,但它不知道你的业务中哪些数据适合缓存、缓存失效时怎么兜底、数据一致性怎么保证。这些恰恰是资深程序员的护城河。与其焦虑,不如把AI当队友,让它帮你把重复编码的时间省下来,拿去做系统设计和技术规划。
Q5:如何避免被“PHP已死”这类言论影响到日常状态?
最简单有效的方法:给自己定一个“信息摄入预算”,比如每天只刷15分钟技术八卦社区,其余时间用来读文档、写代码、看源码。信息过载是焦虑的源头,尤其技术圈的噪音特别多。你看RFC原文、看Laravel changelog、看真实项目案例,这些一手信息越多,二手焦虑对你的影响就越小。我坚持这个习惯快五年了,现在看到任何“某某技术已死”的标题,内心毫无波澜。
6. 写在最后:技术语言是碗里的饭,认知水平才是做这碗饭的手艺
聊到这里,“为什么说那些每天只关注且坚信PHP已死的PHP程序员结局会非常差”这个问题,答案已经很清晰了。表面上看,他们输在信息判断力上;往深了说,他们输在注意力管理、学习能力和职业责任感上。语言会迭代,框架会更替,但一个人攒下的工程素养、问题分析能力和自我驱动习惯,永远不会贬值。
我个人近几年的实操体会是:遇到争议性话题时,先别急着站队,用事实和数据给自己一个交代。PHP给了我吃饭的本事,也让我在一次次“狼来了”的舆论中练就了独立思考的肌肉。有一次我在一个技术社群里看到有人发“PHP挂了吧,都202X年了还有人学PHP”,底下清一色的附和。我默默翻出去搜了一圈招聘网站,当天PHP岗位的数量依然可观。我就知道,网上吵归吵,市场用脚投票的结果是最诚实的。
最后再分享一个小技巧:如果你想在PHP这条路上走得更远,不要只把自己定义成“PHP程序员”,而是定义成“能解决问题的工程师”。你今天用PHP解决了并发问题,明天你可以用Go解决性能痛点,后天你可以用Python做数据处理。身份一旦开阔,语言就不再是围住你的墙,而只是你工具箱里的螺丝刀。至于手里那把螺丝刀什么牌子,重要吗?能把活干漂亮,才重要。
愿你少在网上为“PHP已死”争执,多为自己能写出好东西下功夫。做一个看透噪音、用实力说话的程序员,远比做一个不断复读“PHP已死”的段子手体面得多,也踏实得多。