首页
学习
活动
专区
工具
TVP
发布

手把手撸PHP扩展 0x05: 协程创建(一)

首先,我们需要确定一下这个接口的参数是什么,很显然,是一个PHP函数: #include "study_coroutine.h" ZEND_BEGIN_ARG_INFO_EX(arginfo_study_coroutine_create...ZEND_END_ARG_INFO展开如下: #define ZEND_END_ARG_INFO() }; 因此,我们对这个参数声明展开后,会得到如下内容: ZEND_BEGIN_ARG_INFO_EX(arginfo_study_coroutine_create...) ZEND_ARG_CALLABLE_INFO(0, func, 0) ZEND_END_ARG_INFO() static const zend_internal_arg_info arginfo_study_coroutine_create..., 0, 0, 1) 中写下了单词arginfo、study_coroutine_create,似乎一定是要这样写,但是,我们把ZEND_BEGIN_ARG_INFO_EX宏展开之后会发现,arginfo_study_coroutine_create...所以这里很明显,我们必须填写arginfo_study_coroutine_create,也就是我们参数展开后定义的那个变量。 num_args是接口方法的参数个数。

46310
您找到你想要的搜索结果了吗?
是的
没有找到

php扩展开发一:hello world

"Hello %s", var);//格式化字符串    RETURN_STR(retval);//返回值 } /* }}}*/ 但这样是不够的,我们还需要定义一个函数的参数声明: /* {{{ arginfo... */ ZEND_BEGIN_ARG_INFO(arginfo_tioncico_test1, 0)//函数名,参数是否为引用类型,0代表不是 ZEND_END_ARG_INFO()//结束函数参数信息声明...ZEND_BEGIN_ARG_INFO(arginfo_tioncico_test2, 0)//函数名,参数是否为引用类型,0代表不是    ZEND_ARG_INFO(0, str)//声明一个普通参数...tioncico_functions[]  */ static const zend_function_entry tioncico_functions[] = {    PHP_FE(tioncico_test1,    arginfo_tioncico_test1...)    PHP_FE(tioncico_test2,    arginfo_tioncico_test2)    PHP_FE_END }; 这时候,一个扩展的2个函数已经编写完成了 重新编译运行,

82610

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券