PHP 5 6 7 8 9 各重要版本开发特性和选择简要说明

PHP开发,所用版本的选型

PHP5.4是最后一个支持纯正32位操作系统的版本,在Winxp下仍可使用。

PHP5.6是php5.x的最后一个稳定版本,时至今天,仍有很多用户网站系统在使用,网上仍有很多学习资料是基于这个版本,大量的第三方(旧版本)项目也能在这版本运行,系统硬件需求和资源占用相对也比较低。

网上称PHP为最好的语言,说得也就是这个版本(php5.x)。从好的方面看,因为这个版本对新手学习友好,老手用起来感觉自由无拘束,其它语言转过来的人也因它使用操作简单,能快速生产web项目制作,应用于对性能不敏感的项目。运维也简单,硬件要求低,配置简单,可以不停服实现更新,无需重启机器就能实现即时代码修改和重新部署应用。很少内存泄漏,代码稳定后,项目长期挂在外网也不用重启 。(个人认为)php业务层逻辑代码无所谓技术含量,也无需加密,随便写,随便改,commit代码就能马上看到效果。内置函数也强大,如:实现读写文本的功能PHP只需要用file_get/put_contents就能搞定,而Java,C#需要new好几个对象,再加while循环才能全部读取。(这是我写过 Java,C#,php,golang,nodejs,python 代码后得出的结论 )。只是后面的PHP版本,越搞越来越臃肿,语法也开始朝着复杂繁锁的方向发展。

PHP7 引入了变量强制类型定义,并优化脚本编译,在性能上有5%至25%的提升,但接口变化较大,同时也是一个不太稳定版本。会时而遇到开发调试问题。性能也被后面php8JIT超越。(另外,MS在php8起,不再提供php for windows的官方支持,因为大多数用户都把windows当作php的开发和调试环境,甚至调试时都没挂在IIS上,开发者在正式环境上布署php应用大部分都选择Linux。因此在IIS上运行php最稳定的版本是php7)

PHP8.0至8.3版本,加入JIT编译,是Php7优化版,性能上对比7有5%至15%以上的提升。在代码上,带强类型定义的代码在8下执行速度较快。若是像php5那样的定义无类型的变量,也可以执行,但性能提升较少。

从Php8.4版开始,其编译PHP会生成中间字节码IR(可以简单理解为:编译生成 能适配通用型CPU运行、体积增大的opcode),其IR节码有点像Java、C#那样,意图实现全平台复用。但首次访问系统时会产生编译耗时,会有短暂的卡顿,各平台优化能力有待验证和提升,各种扩展适配IR的稳定性还有待观察。(与7.3类似)它是一个为php9作预演的白鼠过渡版本。

PHP 9 完善编译字节IR的适应性稳定性和多功能性,写的代码显得越来越臃肿。和7,8一样,可能要叠代几个版本才能稳定下来。

按实际情况,版本使用建议如下:

● 需求有32位(嵌入式)微机系统,或用作VM虚拟盘,嵌入Docker时尽量极省资源,用php5.4。

(如果你希望 nginx, mysl , php,甚至docker ,全都安装在一台最便宜的云服务器上,且还能相对流畅地跑起来,应用在一些闲余时间额外开发项目,只要维护方便也无所谓开源闭源,可以考滤使用此版本。)

● 希望兼容性好,网上学习资料多。更期望项目系统的稳定、易测试、易维护,易布署,用php5.6,体系成熟,布署简单,资源占用低(可以用作替代5.4的项目)。

● 希望使用性能已经最优化的,成熟稳定的php版本,目前用 php8.3 (2025),这是适配特定平台下最优JIT编译。( 即便是 PHP5时期的代码,无须加入强类型,也能直接在8.3下运行,遇到异常,修改源码就行了)

● 后面更高的PHP版本,估计接口会有持续的小变化,性能还要不断优化,要两三年后才能稳定下来。

● 不建议使用Php8.4,生成的opcode还在beta中,后面也会被PHP9所代替。

相关推荐
JaguarJack8 小时前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo8 小时前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack1 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理2 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1232 天前
matlab画图工具
开发语言·matlab
dustcell.2 天前
haproxy七层代理
java·开发语言·前端
norlan_jame2 天前
C-PHY与D-PHY差异
c语言·开发语言
多恩Stone2 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
QQ4022054962 天前
Python+django+vue3预制菜半成品配菜平台
开发语言·python·django
QQ5110082852 天前
python+springboot+django/flask的校园资料分享系统
spring boot·python·django·flask·node.js·php