返回

php扩展开发之判断变量类别

发布时间:2022-09-28 17:16:03 303
# php

扩展中的C语言代码

PHP_FUNCTION(hello_dump){
zval *uservar;
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,"z",&uservar)==FAILURE){
RETURN_FALSE;
}
switch(Z_TYPE_P(uservar)){
case IS_NULL:
php_printf("NULL\n");
break;
case IS_TRUE:
php_printf("Boolean:%s\n","TRUE");
break;
case IS_FALSE:
php_printf("Boolean:%s\n","FALSE");
break;
case IS_LONG:
php_printf("Long:%ld\n",Z_LVAL_P(uservar));
break;
case IS_DOUBLE:
php_printf("Double:%f\n",Z_DVAL_P(uservar));
break;
case IS_STRING:
php_printf("String:"); PHPWRITE(Z_STRVAL_P(uservar),Z_STRLEN_P(uservar));
php_printf("\n");
break;
case IS_RESOURCE:
php_printf("Resource\n");
break;
case IS_ARRAY:
php_printf("Array\n");
break;
case IS_OBJECT:
php_printf("Object\n");
break;
default:
php_printf("Unknow\n");

}

RETVAL_TRUE;

}

php测试代码:


hello_dump(NULL);
hello_dump((0==0));
hello_dump((0==1));
hello_dump(1000000000);
hello_dump(1.0);
hello_dump("asd");
$fp=fopen("/root/php/foobar.php","r");
hello_dump($fp);
hello_dump(array(1,2,3));
class A{

}
hello_dump(new A());

输出结果:

NULL
Boolean:TRUE
Boolean:FALSE
Long:1000000000
Double:1.000000
String:asd
Resource
Array
Object


特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
Tp6.0报错Driver [Think] not supported. 2022-09-28 16:42:54