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("ob ject "); 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