位置: 编程技术 - 正文

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搭建)

  • 非上市公司股权转让涉及哪些税
  • 只报税不做账有什么后果?
  • 政府会计制度等式
  • 六种无形资产有什么
  • 附加税减免如何申报
  • 分期付款购买商品的会计分录
  • 本期缴纳上期应纳税额是自动生成的吗?
  • 公司买车可以抵扣哪些税
  • 专票未认证是什么意思
  • 小规模个人所得税怎么申报
  • 材料收到发票未到怎么记账
  • 费用进项税额转出怎么做账务处理分录
  • 取消国税用什么手续
  • 个人借款无法收回确认坏账账务处理
  • 实习生需要缴纳个税吗?
  • 一般纳税人注销公司需要什么资料和流程
  • 发生工伤事故先怎么办
  • 企业取得固定资产的方式有哪些
  • 非营利性组织有
  • 支付行业招商方案
  • 两万元大写金额报销单怎么写
  • 总资产报酬率
  • 以前年度损益调整在利润表中怎么填
  • 免税店购物需要满足什么条件
  • 付款网站制作
  • 进口货物的企业有哪些
  • 虚拟机中如何将文件移动到普通用户的家目录下
  • 虚拟机怎么安装iso镜像文件
  • 银行利息为什么只算10个月
  • linux中gzip的用法
  • 股权转让个税怎么缴纳
  • cmos是bios参数设置的
  • 劳务报酬纳税计算器
  • 库存股属于什么项目
  • php用户会员系统
  • ui.exe啥意思
  • 固定资产清理属于什么类科目
  • 审计项目种类
  • 毛利率为负也可以投资吗
  • 企业取得土地使用权可能作为什么核算
  • 深度学习中正样本、负样本、简单样本、困难样本的区别 (简单易懂)
  • 人工智能能否在证券市场取得额外收益
  • php递归函数桃子一天吃一半
  • vue 快速上手
  • 人力资源管理公务员岗位
  • 退回以前年度的增值税账务处理
  • 什么是应收账款信用管理制度
  • Python解释器有哪几种
  • 商业承兑汇票如何追索
  • 个体对公账户是什么意思
  • 建筑企业开票都要交税吗
  • 以原材料投入资本
  • 企业办理名称变更怎么办
  • 发票章盖得不清晰怎么办
  • 什么是计提坏账准备
  • 汽车固定资产残值率
  • 企业所得税必须预缴吗
  • windows xp玩游戏
  • 把mac屏幕切换到桌面desktop
  • centos 安装选择
  • rrpcsb.exe - rrpcsb是什么进程 有什么用
  • mac应用程序安装失败
  • win10资源管理器启动不了
  • cocos2dx-js
  • node 包管理
  • perl编程
  • js生成d.ts
  • vuejs组件开发实例
  • node.js怎么搭建服务器
  • 使用Raygun对Node.js应用进行错误处理的方法
  • 安卓手机启用暴露通知
  • 在javascript中什么方法可以对数组元素进行排序
  • jstree异步加载
  • 安卓手机管家推荐
  • python django框架
  • 江西电子税务局官网app
  • 江西税务局
  • 税务部门政务公开
  • 留学生在美国买房子需要什么条件
  • 国有企业全面改革方案
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设