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所代替。