PHP扩展函数array_init抛出&return;返回值是未声明的'

时间:2013-08-18 15:43:26

标签: php c++ arrays php-extension

我第一次尝试创建PHP扩展。我需要一个将返回一个assoc数组的函数。因此,出于测试原因,我创建了一个小函数:

PHP_FUNCTION(testing_array) {
    char *firstVal = NULL;
    char *secondVal= NULL;
    int argc = ZEND_NUM_ARGS();
    int firstVal_len;
    int secondVal_len;

    if (zend_parse_parameters(argc TSRMLS_CC, "ss", &firstVal, &firstVal_len, &secondVal, &secondVal_len) == FAILURE)
        return;

    array_init(return_array);
}

但是每当我尝试编译它时,编译器都会告诉我:

/root/php/php-src/ext/hello_world/hello_world.c:87: error: return_array undeclared (first use in this function)
/root/php/php-src/ext/hello_world/hello_world.c:87: error: (Each undeclared identifier is reported only once
/root/php/php-src/ext/hello_world/hello_world.c:87: error: for each function it appears in.)

我做错了什么?在我看到的每个例子中,都没有声明数组变量。

2 个答案:

答案 0 :(得分:1)

查看PHP_FUNCTION()宏的定义。它声明参数return_value 不是 return_array。这就是后者未被宣布的原因。

答案 1 :(得分:0)

错误很明显。在使用之前,您必须声明变量return_array