位置: 编程技术 - 正文

PHP扩展迁移为PHP7扩展兼容性问题记录(php数据迁移)

编辑:rootadmin

推荐整理分享PHP扩展迁移为PHP7扩展兼容性问题记录(php数据迁移),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php 转go,php迁移java,php扩展sg11,php扩展名,php扩展sg11,php扩展名,php 扩展,php数据迁移,内容如对您有帮助,希望把文章链接给更多的朋友!

PHP7扩展编写的时候,提供的一些内核方法和之前的PHP之前的版本并不能完全兼容。有不少方法参数做了调整。下面是在迁移过程中遇到的一些问题。记录下来,避免大家再踩坑。

add_assoc_stringl

方法参数改为四个。

add_assoc_stringl(parray, key, value, value_len);

迁移的时候,只要把最后一个参数删除即可。

add_assoc_string

方法参数从四个改为了三个。

add_assoc_stringl(parray, key, value);

迁移的时候,只要把最后一个参数删除即可。

add_next_index_stringl

方法参数从四个改为了三个。

add_next_index_stringl(parray, value, value_len);

迁移的时候,只要把最后一个参数删除即可。

add_next_index_string

方法参数从三个改为了两个。

add_next_index_string(parray, value);

迁移的时候,只要把最后一个参数删除即可。

RETURN_STRINGL

方法参数从三个改为了二个。

RETURN_STRINGL(value, length);

迁移的时候,只要把最后一个参数删除即可。

错误:‘INT_MAX' 在此作用域中尚未声明

PHP扩展迁移为PHP7扩展兼容性问题记录(php数据迁移)

原因为深入研究。在 #include "php.h" 上面加上一行

解决。

创建类

可以参考mysqli扩展mysqli.c文件中的 mysqli_objects_new 方法。

变量声明从堆上分配,改为栈上分配。

如,原先代码为

改为

方法参数从六个改为了四个。

迁移的时候,只要把第三个和第五个参数删除即可。

错误:‘Z_TYPE_PP' 在此作用域中尚未声明

已经没有Z_TYPE_PP宏,只有Z_TYPE 和Z_TYPE_P宏方法的定义。

h2错误:不能从 ‘zend_string*' 转换到 ‘const char*'

PHP7中对于字符串的处理使用zend_string进行存储。如果想把zend_string 转为 const char 。需要使用 ZSTR_VAL()宏方法。代码如下:

错误:‘IS_BOOL' 在此作用域中尚未声明

已经没有IS_BOOL类型。而是分为了IS_TRUE 和 IS_FALSE.

错误:‘Z_BVAL' 在此作用域中尚未声明

已经没有Z_BVAL宏。但是可以通过类型是否是 IS_TRUE和IS_FALSE来判定。

如果类型为IS_TRUE,则值为true。如果类型为IS_FALSE则值为false。

错误:‘zend_object_store_get_object' 在此作用域中尚未声明

增加如下代码:

然后把zend_object_store_get_object改为Z_USEROBJ_P即可。

注意,user_object是你定义的结构体。

以上所述是针对PHP扩展迁移为PHP7扩展兼容性问题记录的相关叙述,希望对大家有所帮助。

ECshop 迁移到 PHP7版本时遇到的兼容性问题 在PHP7上安装ECShopV2.7.3时,报错!Deprecated:MethodswiththesamenameastheirclasswillnotbeconstructorsinafutureversionofPHP;ECShasadeprecatedconstructorin/usr/local/nginx/html/ecshop/upload/inc

ThinkPHP设置禁止百度等搜索引擎转码(简单实用) 网站在移动端的阅读不可避免的会遇到转码问题,作为国内搜索引擎老大百度,自然要做技术的领头人了,做了百度转码,有些网站经过转码之后达到

在Mac OS的PHP环境下安装配置MemCache的全过程解析 安装服务端memcache是项目名,而在服务端的驻留进程叫memcached(linux的守护进程一般都是在后面加个d)。在OSX下使用brew可以快速安装memcache:$sudobrewinstallmem

标签: php数据迁移

本文链接地址:https://www.jiuchutong.com/biancheng/289839.html 转载请保留说明!

上一篇:在Mac OS上搭建PHP的Yii框架及相关测试环境(mac如何使用php)

下一篇:ECshop 迁移到 PHP7版本时遇到的兼容性问题(ecshop app搭建)

  • 个人车辆无偿给公司使用
  • 企业所得税年度汇算清缴时间
  • 什么是税务代理人
  • 账龄划分模板
  • 销售成本包括销售部门
  • 有社保的工资计提和发放
  • 个人与公司交的税怎么算
  • 利润分配未分配利润借贷方表示什么
  • 红字发票信息表需要盖章吗
  • 冲减存货的会计分录
  • 企业怎么挑选计提折旧方式方法
  • 什么情况下增值税进项税额要转出
  • 母公司不经营分公司能报税吗?
  • 国税能代开什么费用的发票?
  • 商品销售税金及附加科目现在改了吗
  • 序列号不可用怎么办
  • 现金日记账如何结账
  • 以前年度暂估
  • linux命令使用
  • 进程核心栈
  • windows7旗舰版为什么很多东西打不开
  • 子公司之间能否相互承包工程
  • PHP:Memcached::delete()的用法_Memcached类
  • 2020香港回归23年
  • 汇总收款凭证怎么做账
  • pytorch :OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading 【已解决】
  • 可供出售金融资产在资产负债表日反映的是
  • 前端面试常问的项目问题
  • MAE详解
  • html代码form
  • php隐藏图片地址
  • php的foreach遍历原理
  • 印花税是1%吗
  • 端午节发现金怎么说
  • 园林绿化工程公司排名
  • 营业执照贴印花税票吗
  • node.js最新版本
  • 企业所得税月月交吗
  • 冲减管理费用为什么放在借方
  • 织梦内容页模板修改
  • 工资薪金与劳务报酬的区别有哪些
  • sql server数据表的关联
  • 开办费的最新账务处理会计视野
  • 其他权益工具影响所得税吗
  • 应付账款尾款怎么处理
  • 无形资产的累计折旧
  • 广告费可以结转几年
  • 行政拨款给工会的账务处理
  • 预缴所得税弥补以前年度亏损
  • 工厂厨房厨具
  • 工程材料票占工程款的比例
  • 现金支票存根联丢失怎么办
  • 代收物业费有什么风险
  • 车船税没发票只交可以吗
  • 数电怎么增加开票员
  • 会计政策变更的追溯调整法和未来适用法
  • mysql 临时表
  • 苹果15手机价格和图片颜色
  • unix系统采用什么结构
  • wp8.0升级8.1
  • 虚拟机中怎么安装VMwareTools
  • spysweeper.exe - spysweeper是什么进程
  • linux updatedb
  • 怎么防电胖
  • win10应用商店更新比蜗牛还慢
  • linux中docker
  • bootstrap表单模板
  • node.js视频教程
  • unity ui碰撞
  • shell脚本逐条执行
  • jQuery AjaxUpload 上传图片代码
  • jquery中如何获取元素?
  • android 监听事件
  • jquery console.log
  • python中ans
  • android知识点大全
  • Python的二维列表存储
  • jquery知识点总结
  • 房产营业税满2年怎么算
  • 餐饮财务分析表怎么写的啊
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设