问答 百科手机端

php扩展开发:引用传参

2023-03-13 15:37
这两天想让函数返回多个参数,除了return_value,又定义一个引用参数来返回数据。记录如下:


1、在PHP_FUNCTION(func_name)中定义:

	zval *refval;

参数解析:

	Z_PARAM_ZVAL(refval);


获取实际地址:

	zval *real_var = Z_REFVAL_P(info);

然后对real_var正常操作即可。


2、在函数说明中:

ZEND_BEGIN_ARG_INFO(arginfo_func_name,0)
...
ZEND_ARG_INFO(1, refval)  //注意第一个参数1代表引用传参。
...
ZEND_END_ARG_INFO()


3、在php页面中调用func_name(...,ref_name,...);即可通过ref_name获取返回的值。无须在php页面中定义此变量,函数调用返回后可直接使用此ref_name。

热门