请教各位有关PHP扩展API版本的问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

请教各位有关PHP扩展API版本的问题

2016-06-16 16:54:04 2421 1

最近在写一个PHP扩展.
发现两个版本之间内部迭代器接口函数有些许变化,区别如下:

{php-src}/Zend/zend_interface.c (in 5.3.X): 
ZEND_API void zend_user_it_get_current_key(zend_object_iterator *_iter, char **str_key, uint *str_key_len, ulong *int_key TSRMLS_DC)
----------------------------------------------------------------------------------
{php-src}/Zend/zend_interface.c (in 5.4.X): 
ZEND_API void zend_user_it_get_current_key(zend_object_iterator *_iter, zval *key TSRMLS_DC)

请问这个变更是和PHP版本关联:
screenshot
还是跟扩展版本关联:
screenshot
如何适配不同版本的API呢?

取消 提交回答
全部回答(1)
  • 落地花开啦
    2019-07-17 19:41:21

    至少从源码上看,和ZEND_MODULE_API_NO、ZEND_EXTENSION_API_NO 没有关系。
    只能是PHP_API_VERSION了

    zend_interfaces.c这个里面的这几个方法是定义的一些userspace iterator interfaces
    你是不是用的5.4开发分支的源代码?因为这个函数接口的改动是为了:Added support for non-scalar Iterator keys in foreach。
    但这个特性是5.5才开始支持的,5.4中zend_user_it_get_current_key这个函数的签名和以前没有变化啊。

    我觉得遇到这种情况,一种办法是:

    #if PHP_API_VERSION < 20120000
    
    #else
    
    #endif
    0 0
相关问答

1

回答

php和mysql版本升级

2018-10-19 08:57:10 585浏览量 回答数 1

1

回答

云虚机PHP版本怎么升级

2018-09-30 14:17:25 354浏览量 回答数 1

3

回答

PHP版本升级

2018-09-05 18:24:38 598浏览量 回答数 3

1

回答

php版本升级 现在的版本是 PHP 5

2018-05-11 06:13:10 472浏览量 回答数 1

1

回答

php版本升级

2018-02-03 00:44:56 426浏览量 回答数 1

1

回答

5.2.1PHP版本,如何升级5.3.0以上

2015-08-31 10:57:19 2252浏览量 回答数 1

4

回答

怎么把php版本从5.2升级到5.4

2015-07-24 01:24:00 5269浏览量 回答数 4

4

回答

PHP版本升级

2014-07-15 13:31:48 7047浏览量 回答数 4

2

回答

ECSWINDOWS2012配置好PHP环境,mysql客户端连接出现如下错误

2015-10-23 13:30:20 4637浏览量 回答数 2

1

回答

ECSWINDOWS2012配置好PHP环境,mysql客户端连接出现如下错误

2015-10-23 13:41:05 5192浏览量 回答数 1
+关注
落地花开啦
喜欢技术,喜欢努力的人
0
文章
7824
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载