位置: 编程技术 - 正文
推荐整理分享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' 在此作用域中尚未声明
原因为深入研究。在 #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 转载请保留说明!友情链接: 武汉网站建设