php扩展开发:编写一个传递引用参数的函数
config.m4 ---------- 略
PHP_FUNCTION(byref_calltime) { zval *a; if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &a) == FAILURE){ //将接收的第一个参数直接赋给a //如果传递给函数的参数数量小于zend_parse_parameters()要接收的参数数量,它便会执行失败,并返回FAILURE。 //如果我们需要接收多个参数,可以直接在zend_parse_paramenters()的参数里罗列接收载体便可以了,如: RETURN_NULL(); } if(!a->is_ref__gc){//如果a不是引用类型,直接结束 return ; } convert_to_string(a);//转换成字符串 ZVAL_STRING(a, "hello byzef", 1);//给a赋值 } ZEND_BEGIN_ARG_INFO(byref_compiletime_arginfo, 0)//定义arg_info结构体, 与PHP_FUNCTION(byref_calltime) 对应 ZEND_ARG_PASS_INFO(1) ZEND_END_ARG_INFO()
$a = "init"; byref_compiletime($a); echo $a;
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了