PHP_FUNCTION(say_hello)
{
   ....
   array_init(return_value);
   add_next_index_long(return_value, 20); 
}上面是可以正常返回一个数组如果 
PHP_FUNCTION(say_hello)
{
   ....
   array_init(return_value);
   add() ;
}void  add()
{
   add_next_index_long(return_value, 20); 
}就会报Segmentation fault 错误。
请知道问题的朋友帮帮忙

解决方案 »

  1.   

    return_value是PHP_FUNCTION展开的宏定义的#define PHP_FUNCTION            ZEND_FUNCTION#define ZEND_FUNCTION(name)             ZEND_NAMED_FUNCTION(ZEND_FN(name))#define ZEND_NAMED_FUNCTION(name)       void name(INTERNAL_FUNCTION_PARAMETERS)#define INTERNAL_FUNCTION_PARAMETERS int ht, zval *return_value, \
    zval **return_value_ptr, zval *this_ptr, int return_value_used TSRMLS_DC