PHP扩展开发之数字参数传递

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP扩展开发之数字参数传递相关的知识,希望对你有一定的参考价值。

 1.先创建一个扩展文件夹,参考【
   
 2,编写代码 
	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);‘ 
         
    
    
    
	
		


以上是关于PHP扩展开发之数字参数传递的主要内容,如果未能解决你的问题,请参考以下文章

PHP 扩展开发之Zephir

PHP-CPP开发扩展

PHP7扩展开发之实现简单运算函数

PHP7扩展开发之Hello World

PHP7扩展开发之引入外部so库遇到的问题

PHP7扩展开发之引入外部so库遇到的问题