如果一个函数叫
function test( & $retCode )
{
$retCode = 1;
}
那么test($ret)后,$ret的值就为1,这个和C/C++里的指针、引用参数是一样的
在PHP扩展模块里,我们也可以实现这种写法
PHP_FUNCTION(php_test)
{
zval out = NULL;
zval Rg = NULL;
if( zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,”z”, &out) == FAILURE )
{
RETURN_NULL();
}
zval_dtor(out);
ALLOC_INIT_ZVAL(Rg);
array_init(Rg);
add_assoc_string(Rg, “name”, “slackcode”, sizeof(“slackcode”)-1, 1);
add_assoc_long(Rg, “age”, -1);
add_assoc_long(Rg, “luckyNum”, 11);
ZVAL_ZVAL(out, Rg, 1, 1);
RETURN_LONG(0);
}
这样子,我们调用
$person = NULL;
php_test($person);
将返回
Array
(
[name] => slackcode
[age] => -1
[luckyNum] => 11
)
这就实现了引用参数咯
可以到这里看看相关资料