我第一次尝试创建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.)
我做错了什么?在我看到的每个例子中,都没有声明数组变量。
答案 0 :(得分:1)
查看PHP_FUNCTION()
宏的定义。它声明参数return_value
不是 return_array
。这就是后者未被宣布的原因。
答案 1 :(得分:0)
错误很明显。在使用之前,您必须声明变量return_array
。