zoukankan      html  css  js  c++  java
  • PHP扩展开发

    经典名著:http://phpbook.sinaapp.com/ 一个小小的示例:
    PHP_FUNCTION(say_hello)  
    {  
        char *arg = NULL;   
        int arg_len, len;   
        char *strg;  
    
        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",  
            &arg, &arg_len) == FAILURE) {   
            return;   
        }  
    
        len = spprintf(&strg, 0, "Hello %s/n", arg);   
        RETURN_STRINGL(strg, len, 0);   
    }
    1. 参数接收: 这里接收函数的参数需要通过zend_parse_parameter函数解析,第一个参数指定用户传入say_hello函数的参数个数,可以通过宏ZEND_NUM_ARGS()生成,TSRMLS_CC用来确保线程安全;第二个参数是一个字符串,每个字母代表一种类型,其中”s”代表char*或者int类型,“b”代表布尔类型,“l”代表long类型,完整的类型映射可以看这里 ;后面几个参数是我们定义的局部变量,用来接收传入的参数值 2. 函数返回值:不能使用C语言原生的return语句,而应该使用Zend API里提供的宏定义,如RETURN_STRINGL返回一个字符串;而RETURN_TRUE返回布尔类型true。
  • 相关阅读:
    IDEA中classpath
    Java之泛型<T> T与T的用法
    反射机制
    vue mitt 解决多次触发问题
    input限制输入
    解决idea启动端口被占用
    前端压缩图片转base64
    对Bootstrap Table 表格进行封装
    vue项目本地运行
    vue项目搭建
  • 原文地址:https://www.cnblogs.com/trying/p/2863727.html
Copyright © 2011-2022 走看看