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);‘ 
         
    
    
    
时间: 2024-12-05 16:54:49

PHP扩展开发之数字参数传递的相关文章

Chrome浏览器扩展开发系列之十四:本地消息机制Native messagin

Chrome浏览器扩展开发系列之十四:本地消息机制Native messaging 2016-11-24 09:36 114人阅读 评论(0) 收藏 举报  分类: PPAPI(27)  通过将浏览器所在客户端的本地应用注册为Chrome浏览器扩展的"本地消息主机(native messaging host)",Chrome浏览器扩展还可以与客户端本地应用之间收发消息. 客户端的本地应用注册为Chrome浏览器扩展的"本地消息主机"之后,Chrome浏览器会在独立的

Chrome浏览器扩展开发系列之十四

Chrome浏览器扩展开发系列之十四:本地消息机制Native messaging 时间:2015-10-08 16:17:59      阅读:1361      评论:0      收藏:0      [点我收藏+] 通过将浏览器所在客户端的本地应用注册为Chrome浏览器扩展的"本地消息主机(native messaging host)",Chrome浏览器扩展还可以与客户端本地应用之间收发消息. 客户端的本地应用注册为Chrome浏览器扩展的"本地消息主机"

【原创】PHP扩展开发进阶

PHP扩展开发进阶 ?作者:wf (360电商技术) 在第一期PHP扩展开发入门中,简单的介绍了PHP的总体架构和执行机制,并具体说明了怎样开发和编译一个主要的PHP扩展,最后在PHP 5.3的环境下结合zend api高速编写了一个静态的PHP扩展. 然而仅仅编译一个PHP扩展是没有实际用途的,它仅仅是一个华丽的外壳,为了使扩展实现更强大的功能,须要在扩展中开发一些有用的功能函数.在这一章中,将会着重介绍PHP内核中变量的实现.在此基础上,才干将须要的功能,使用zend api在PHP扩展中实

PHP扩展开发教程(总结)

PHP是一种解释型的语言,对于用户而言,我们精心的控制内存意味着easier prototyping和更少的崩溃!当我们深入到内核之后,所有的安全防线都已经被越过,最终还是要依赖于真正有责任心的软件工程师来保证系统的稳定运行. 1.线程安全宏定义 在TSRM/TSRM.h文件中有如下定义 #define TSRMLS_FETCH()       void ***tsrm_ls = (void ***) ts_resource_ex(0, NULL)#define TSRMLS_FETCH_FRO

php扩展开发

本文的环境是windows下开发php版本5.3 1.下载php5.3的源码包和php5.3的二进制包(平时使用的php程序包) 2.下载cygwin,并默认安装在c:\cygwin,因为生成php扩展框架的程序需要cygwin 3.假设php扩展的工作目录为d:\php,解压源码包和二进制包到这个目录 4.cmd命令行在d:\php\ext目录中运行 php ext_skel_win32.php --extname=yourext (如果php.exe程序的路劲未加入系统环境变量则需要自己指定

jquery开发的数字相加游戏(你能玩几分)

jquery开发的数字相加游戏,我在一轮中玩了632分(如下图),你能玩几分,哈哈... 我要试一试 下面贡献下这款“数字相加游戏”的开发过程. html部分: <div class="container"> <div class="how-to-play"> <h1> How to Play</h1> <p> 数字加法游戏-- 单击左侧的数字色块相加等于右上角的数字,当相等时,这几个色块消失. </

openstack 扩展开发最佳实践之计算节点高可用

前言:注意是扩展开发,这个词是我杜撰的,大概意思是指基于openstack的rest api做的一些开发,用于辅助相关功能,而不是直接改动openstack内的代码,怎么修改添加openstack各个组件的代码不在此文章内容内. 首先,千万,千万,千万不要用Openstack提供的SDK,原因如下. 一,SDK的相关文档并不健全. 二,版本不够统一,即兼容的问题. 所以不要使用openstack的SDK而是自己查阅openstack的API文档,通过requests库发http请求要比SDK灵活

Chrome扩展开发之三——Chrome扩展中的数据本地存储和下载

目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制和通信方式 3.Chrome扩展开发之三——Chrome扩展中的数据本地存储和下载 4.Chrome扩展开发之四——Gmail API的简单介绍 5.Chrome扩展开发之五——OAuth2的理解 6.Chrome扩展开发之六——GmailAssist核心功能的实现(包括Gmail API的使用中的

PHP扩展开发(1)-创建基础框架

生成PHP扩展开发的基础框架. 一.Linux下 $>cd ~/{php源码}/ext $>./ext_skel --extname=simple Creating directory simpleCreating basic files: config.m4 config.w32 .svnignore simple.c php_simple.h CREDITS EXPERIMENTAL tests/001.phpt simple.php [done]. To use your new ext