mydeer
就像我们从来没有来过这里,但这种感觉似曾相识。
PHP 扩展开发 之 var_dump

今天模拟php的var_dump函数:入门扩展开发请搜索  如何编写 PHP 扩展 之 我的第一个PHP扩展

模拟var_dump函数,可以输出变量的类型和标量类型的值,这里不再将如何编译什么的了直接重点代码:

扩展C代码:

PHP_FUNCTION(helloc)
{
    zval *var;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC "z" &var) == FAILURE) 
        return;

    switch(Z_TYPE_P(var)){
        case IS_BOOL:
            php_printf("Boolean: %s "Z_LVAL_P(var)?"TURE":"FALSE");
            break;
        case IS_LONG:
            php_printf("Long: %ld "Z_LVAL_P(var));
            break;
        case IS_DOUBLE:
            php_printf("Double: %f "Z_DVAL_P(var));
            break;
        case IS_STRING:
            php_printf("String: ");
            PHPWRITE(Z_STRVAL_P(var)Z_STRLEN_P(var));
            php_printf(" ");
            break;
        case IS_ARRAY:
            php_printf("Array ");
            break;
        case IS_object:
            php_printf("object ");
            break;
        case IS_RESOURCE:
            php_printf("Resource ");
            break;
        case IS_NULL:
            php_printf("Null ");
            break;
        default:
            php_printf("Unkown Type ");
    }   
    RETURN_TRUE;
}

PHP测试代码:

<?php
$info = 1;
helloc($info);
$info = array();
helloc($info);
$info = true;
helloc($info);

结果:

Long: 1 Array Boolean: TURE 
<< 上一篇 H5 浏览器存储 websql 使用详情及实例 堆和栈的区别 之 数据结构和内存 下一篇 >>
文章标签
随意 | Created At 2014 By William Clinton | 蜀ICP备14002619号-4 |