(ZEND_BEGIN_ARG_INFO_EX 、ZEND_END_ARG_INFO)接受参数的使用

一、代码

ZEND_BEGIN_ARG_INFO_EX(test, 0, 0, 1)
    ZEND_ARG_CALLABLE_INFO(0, func, 0)
ZEND_END_ARG_INFO()

二、ZEND_BEGIN_ARG_INFO_EX 定义如下:

#define ZEND_BEGIN_ARG_INFO_EX(name, _unused, return_reference, required_num_args)	\
	static const zend_internal_arg_info name[] = { \
		{ (const char*)(zend_uintptr_t)(required_num_args), NULL, 0, return_reference, 0, 0 },

name:是参数的名字

_unused 不用管,因为 展开宏之后并没有用到。

return_reference 表示是否返回引用。

 required_num_args 函数至少传递的参数个数。

三、ZEND_END_ARG_INFO 定义

#define ZEND_END_ARG_INFO()		};

四、最后上述代码展开后得到 

static const zend_internal_arg_info test[] = { \
		{ (const char*)(zend_uintptr_t)(required_num_args), NULL, 0, return_reference, 0, 0 },
		ZEND_ARG_CALLABLE_INFO(0, func, 0)
}

五、ZEND_ARG_CALLABLE_INFO

     用来显式声明参数为callable,将检查函数、成员方法是否可调用 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值