到 2024 年了,全球仍有 76.4% 的网站在用「已死」的 PHP!

PHP尽管曾被嘲笑,但在2024年仍因其性能提升、快速开发、易部署和广泛使用而被软件工程师视为Web开发的合理选择。SotirisKourouklis分析指出,PHP在多个方面具有优势,尤其适合快速开发和低成本项目。

c992b5e5d5a4aa9f097a07261d467963.gif

整理 | 郑丽媛

出品 | 程序人生(ID:coder_life)

如今资历稍长的程序员,提到 PHP 可能都会联想到一个梗:“PHP 是最好的语言。”

这个梗并非出自别处,正源自于 PHP 自己的官方文档:早在 2001 年 7 月,PHP 文档中就有一句“PHP is the best language for web programming(PHP 是世界上最好的 Web 开发语言)”。

当初,这句“豪言”惹来了无数开发者的嘲讽和争议——在 PHP 看似逐渐没落的如今,更是如此。那么问题来了:到 2024 年了,PHP 还值得用吗?

针对这个问题,下面软件工程师 Sotiris Kourouklis 在进行一番分析后表示:PHP 仍是 2024 年 Web 开发的一个不错选择。

8f9ad1a44d370df36f2d1dab737f8393.png

快速了解 PHP 的各个方面

尽管许多人认为 PHP 是一种古老且不合格的语言,但在如今的 2024 年,它依然是所有网站中使用最多的语言。PHP 的糟糕名声通常与 WordPress(被认为是 21 世纪最糟糕的软件之一)有关。如果不提 WordPress,让我们快速了解一下 PHP 的其他方面,以及为什么它仍可能是 2024 年 Web 开发的一个不错选择。

(1)性能

随着时间的推移,PHP 的速度越来越快,尤其是最新的 php 8.1 及以上版本,速度相当快。虽然在某些情况下,PHP 可能不敌Go 或 Java 等编程语言,但单论速度而言,PHP 与 Python 或 Node.js 不相上下,甚至还要更快。

85431afafb60ae927f76e7f0df659d29.png

(2)开发速度

可能你不熟悉 PHP,但它与 Python 非常相似,只有一些细微的差别,而这种相似性有助于加快开发速度。从执行简单的 CRUD 操作到处理文件、webhooks 和 websockets,一切都可以用最少的代码完成:因为几乎所有你需要完成的任务都有可用的库,无需自己编写大量代码。

(3)部署

PHP 的主要优势之一是易于部署,即使是大规模部署也是如此。只需一个简单的 PHP 服务器和 nginx,你就可以在几个小时内启动并运行。

(4)可扩展性

想问 PHP 的可扩展性如何?当然,任何编程语言都需要对应用程序进行负载平衡,尤其是每天要收到数百万个请求的情况下,但如果在端点上正确实施缓存,即使不进行负载平衡,也不会有任何问题。

(5)简洁的代码和可读性

在编写简洁代码时,PHP 可能会比较混乱,这个问题用类似 Laravel 这样提供模板的框架就能解决。即使是代码行数超过 20 万行的大型应用程序接口(不包括自动生成的文件),只要保持简洁,代码也能保持很高的可读性。

而 Sotiris Kourouklis 认为,唯一更适合编写简洁代码的编程语言应该是 Python。

最后,Sotiris Kourouklis 建议用 PHP/Laravel 构建主要的单体应用程序接口,因为它具有强大的框架功能,可简化大型代码库的管理。对于特殊需求,例如涉及 AI 或其他 CPU 密集型操作的需求,可以考虑用针对此类任务进行优化的其他编程语言。“我认为,这种战略分工能让你充分利用每种语言和技术的优势,确保整个项目的效率和可维护性。”

759a52e648dddc2929f3a21cfcf3c16b.png

2024 年,仍有 76.4% 的网站在用 PHP 

通过以上分析,Sotiris Kourouklis 认为不论从性能、开发速度、部署难度、可扩展性等各个方面,PHP 都有其独到的有点,由此断言 PHP 仍是一个 2024 年 Web 开发的优选语言。

事实上,根据 W3Techs 最新统计的 PHP 使用情况,也可以侧面印证这个说法:“在我们知道其服务器端编程语言的所有网站中,有 76.4% 的网站都在使用 PHP。”

这个数据,看似与时常遭程序员嘲讽的 PHP 毫无关系,但事实上诞生至今已经有 20 多年历史的 PHP,其具备的快速、免费和开源等特点,仍是如今诸多极其重视时间和成本的创业公司的最优解。此外,在全球超 70% 将 PHP 作为开发语言的主流网站中,其中还有不少知名企业的官网:Facebook、微软、维基百科、Mozilla 等。

许多程序员也指出,虽然近年来移动互联网崛起、移动 App 开发爆火、前后端逐渐分离、Web 开发地位受到一定影响,导致 PHP 不复 2000 年左右 PC 互联网时代的辉煌,但如今也谈

不上没落甚至消失。

或许应该说,随着开发大环境发生演变,各种编程语言

的定位也愈发明确,PHP 虽不如曾经辉煌,但它在快速开发和低成本开发领域,仍然是许多人的首选。

参考链接:

https://sotergreco.com/is-php-still-worth-it-in-2024

https://w3techs.com/technologies/details/pl-php

推荐阅读:

▶小米 SU7 发布 20 天,雷军直播辟谣:不是爽文男主,争取 5 月份用 SU7 漂移

▶硅谷 CEO 立「千万赌约」,邀马斯克应战:“我用 1000 万美元,赌你的 AI 预测是错的!”

特斯拉裁员 1.4 万人!曝赔偿 N+3,两大核心高管已离职,市值暴跌 304 亿美元

cd7672829c52926bc1d50888a5f16f2c.gif

4 月 25 ~ 26 日,由 优快云 和高端 IT 咨询和教育平台 Boolan 联合主办的「全球机器学习技术大会」将在上海环球港凯悦酒店举行,特邀近 50 位技术领袖和行业应用专家,与 1000+ 来自电商、金融、汽车、智能制造、通信、工业互联网、医疗、教育等众多行业的精英参会听众,共同探讨人工智能领域的前沿发展和行业最佳实践。欢迎所有开发者朋友访问官网 http://ml-summit.org、点击「阅读原文」或扫码进一步了解详情。

8006a131498592723431a8771166c9fa.png

在此前基础上,我们进一步优化设定: - **转速从 0 rpm 开始** - **以 500 rpm 为步长递增至 5500 rpm** - **油门开度仍按 10% 递增** - **额定转速为 2000 rpm** - **额定转速前为恒扭矩控制(230 Nm)** - **额定转速后为恒功率控制(100 kW)** --- ### ✅ 更新后的转速向量(从0开始,500步长至5500): ```matlab RPM_Vector = 0:500:5500; ``` 等效为: ```matlab RPM_Vector = [0, 500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000, 5500]; ``` --- ### ✅ 油门开度向量(保持10%步长): ```matlab Throttle_Vector = 0:10:100; ``` --- ### ✅ 构造 Torque_Map 的完整Matlab代码 ```matlab % 转速向量 RPM_Vector = 0:500:5500; % 油门开度向量 Throttle_Vector = 0:10:100; % 初始化扭矩矩阵 Torque_Map = zeros(length(RPM_Vector), length(Throttle_Vector)); % 填充数据 for i = 1:length(RPM_Vector) rpm = RPM_Vector(i); for j = 1:length(Throttle_Vector) throttle = Throttle_Vector(j); % 根据油门开度缩放最大扭矩 max_torque = 230 * (throttle / 100); if rpm <= 2000 || rpm == 0 % 恒扭矩段(包括0转速) Torque_Map(i, j) = max_torque; else % 恒功率段:功率 = 100kW * (throttle/100) power = 100 * (throttle / 100); % 千瓦 torque = power * 9549 / rpm; Torque_Map(i, j) = min(torque, max_torque); % 防止超过最大扭矩 end end end ``` --- ### ✅ 示例部分扭矩表(部分数据展示) | RPM \ Throttle | 0% | 10% | 20% | 30% | 40% | 50% | 60% | 70% | 80% | 90% | 100% | |----------------|----|------|------|------|------|------|-------|-------|-------|-------|--------| | 0 | 0 | 23 | 46 | 69 | 92 | 115 | 138 | 161 | 184 | 207 | 230 | | 500 | 0 | 23 | 46 | 69 | 92 | 115 | 138 | 161 | 184 | 207 | 230 | | 1000 | 0 | 23 | 46 | 69 | 92 | 115 | 138 | 161 | 184 | 207 | 230 | | 1500 | 0 | 23 | 46 | 69 | 92 | 115 | 138 | 161 | 184 | 207 | 230 | | 2000 | 0 | 23 | 46 | 69 | 92 | 115 | 138 | 161 | 184 | 207 | 230 | | 2500 | 0 | 38.2 | 76.4 | 114.6| 152.8| 191 | 229.2 | 267.4 | 305.6 | 343.8 | 382 | | 3000 | 0 | 31.8 | 63.6 | 95.4 | 127.2| 159 | 190.8 | 222.6 | 254.4 | 286.2 | 318 | | 3500 | 0 | 27.3 | 54.6 | 81.9 | 109.2| 136.5| 163.8 | 191.1 | 218.4 | 245.7 | 273 | | 4000 | 0 | 23.9 | 47.7 | 71.6 | 95.5 | 119.4| 143.2 | 167.1 | 191.0 | 214.9 | 238.7 | | 4500 | 0 | 21.2 | 42.4 | 63.6 | 84.8 | 106 | 127.2 | 148.4 | 169.6 | 190.8 | 212 | | 5000 | 0 | 19.1 | 38.2 | 57.3 | 76.4 | 95.5 | 114.6 | 133.7 | 152.8 | 171.9 | 191 | | 5500 | 0 | 17.4 | 34.7 | 52.1 | 69.4 | 86.8 | 104.2 | 121.5 | 138.9 | 156.3 | 173.6 | --- ### ✅ Simulink使用建议 1. 将 `RPM_Vector`, `Throttle_Vector`, `Torque_Map` 定义为工作区变量。 2. 使用 **2D Lookup Table** 模块,设置如下参数: - Table data: `Torque_Map` - Row indices: `RPM_Vector` - Column indices: `Throttle_Vector` 3. 输入信号为当前转速和油门开度。 4. 输出为查表得到的基准扭矩。 --- ### ✅ 总结 - 转速范围扩展至 **0~5500 rpm**,步长为 **500 rpm** - 保持 **恒扭矩段(≤2000 rpm)** 和 **恒功率段(>2000 rpm)** - 适用于发动机控制、电机控制、整车动力系统仿真等场景 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值