首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Php扩展问题

Php扩展问题
EN

Stack Overflow用户
提问于 2011-01-08 04:16:15
回答 2查看 236关注 0票数 1

当我试图用c创建一个php扩展名并返回一个数组时,我遇到了一个棘手的问题。我做了一些教程说的,但我需要返回一个数组。在所有示例中,array_init(return_array)都被称为初始化返回数组,但我发现没有声明return_array。因此,我得到了错误:error C2065: 'return_array' : undeclared identifier,,但是,如果我添加:

zval * return_array ;

但是它会抛出,你的应用程序不能读取地址0000f,为什么?

你能给我一个包含数组返回数百万次的详细扩展示例吗?

EN

回答 2

Stack Overflow用户

发布于 2011-01-22 19:39:16

如果要返回数组,只需初始化return_value

代码语言:javascript
复制
array_init(return_value);

return_value是由PHP_FUNCTION()宏声明的zval*

票数 0
EN

Stack Overflow用户

发布于 2015-08-04 13:24:33

下面的代码给出了返回数组的示例:

代码语言:javascript
复制
array_init(return_value);
add_index_long(rturn_value,0,10);
add_index_stringl(return_value,1,"test",1);
zval * record;
MAKE_STD_ZVAL(record);
array_init(record);
add_assoc_long(record,"key",1);
add_index_zval(return_value,2,record);
return;

这将在php命名空间中返回以下结果,涵盖大多数php扩展返回场景:

代码语言:javascript
复制
array(
    10,
    "test",
    array(
        "key" => 1
    )
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4632298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档