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。
  • 相关阅读:
    ie678兼容问题
    ie6/7中 zindex兼容问题
    mac svn 操作
    location.hash
    让 div 浮动到底端
    timeout问题
    让footer 自适应在底端
    js获取浏览器的高度
    ajax浏览器后退功能实现
    经典SQL语句大全(二)
  • 原文地址:https://www.cnblogs.com/trying/p/2863727.html
Copyright © 2011-2022 走看看