学习
实践
活动
专区
工具
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是接口方法的参数个数。

37910
  • 广告
    关闭

    【玩转 GPU】有奖征文

    精美礼品等你拿!

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

    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个函数已经编写完成了 重新编译运行,

    62310

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注腾讯云开发者

      领取腾讯云代金券