php扩展开发传参数,PHP扩展开发之整型参数传递

实现一个加法函数,传入2个参数,计算相加的和:

1.创建一个新的扩展

./ext_skel --extname=hello

2.vi config.m4   去掉以下3行行首的dnl

PHP_ARG_ENABLE(strive, whether to enable strive support,

Make sure that the comment is aligned:

[  --enable-strive           Enable strive support])

3,编写代码

1.vi hello.c

2.#添加下面的代码

ZEND_BEGIN_ARG_INFO(addition_arginfo, 0)

ZEND_ARG_INFO(0, num1)

ZEND_ARG_INFO(0, num2)

ZEND_END_ARG_INFO()

PHP_FUNCTION(addition) {

long num1,num2;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll", &num1, &num2) == FAILURE) {

return;

}

RETURN_LONG(num1+num2);

}

3.在数组中添加函数名:

const zend_function_entry  hello_functions[] = {

PHP_FE(addition, NULL)           /* addition function */

}

解释:

这里创建的拓展名为hello,所以需要编辑hello.c文件,在里面加上相应的函数。这里加上了addition

函数,主要功能是实现两个参数的相加。定义了2个参数,num1与num2。

ZEND_BEGIN_ARG_INFO  :开始参数块定义

ZEND_END_ARG_INFO      :结束参数块定义

ZEND_ARG_INFO      :声明普通参数

PHP_FUNCTION(addition) :这里是为扩展添加具体的函数,函数名为(addition)

函数内定义了两个long类型的变量,这里定义的变量与上面参数块中定义的对应。

RETURN_LONG:表示返回一个long类型的值,

4.编译安装扩展,

5.测试addition函数是否可用:

php -r ‘echo addition(10,40);‘

原文:http://lampzxr.blog.51cto.com/3990989/1886058

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值