当前位置: 首页 > article >正文

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

        


http://www.kler.cn/a/465661.html

相关文章:

  • 安卓入门十一 常用网络协议四
  • 【业务场景】sql server从Windows迁移到Linux
  • 【网络安全 | 漏洞挖掘】JS Review + GraphQL滥用实现管理面板访问
  • 基于springboot的课程作业管理系统(源码+数据库+文档)
  • 详解MySQL SQL删除(超详,7K,含实例与分析)
  • windows 图形基础架构简介
  • TT100K数据集, YOLO格式, COCO格式
  • fastadmin 表格数据导入
  • 打开游戏弹出缺少dll文件怎么解决?
  • AES加密的使用 Hutool 工具包SecureUtil.aes
  • MagicQuill: AI平板智能画师-AI智能交互式图像编辑系统
  • 二维码文件在线管理系统-收费版
  • C# OpenCV机器视觉:姿态估计
  • UE4_用户控件_3_用户控件输入数据的方法
  • javaEE-网络原理-2网络编程
  • 网安数学基础期末复习
  • 单源最短路径【东北大学oj数据结构12-2/3】C++
  • 【JAVA】java中将一个list进行拆解重新组装
  • Kafka集群的常用命令与策略
  • 从室内到室外:移动机器人的环境适应之旅
  • 企业级网络运维管理系统:构建高效与稳定的基石
  • 电化学气体传感器在物联网中的精彩表现
  • 文本表征的Scaling Laws:Scaling Laws For Dense Retrieval
  • 02.01、移除重复节点
  • 【Ubuntu】安装华为的MindSpore
  • 2、pycharm常用快捷命令和配置【持续更新中】