<?php
function reconstructDump() {
$args = func_num_args();
for($i = 0;$i < $args; $i ++) {
$param = func_get_arg($i);
switch(gettype($param)) {
case 'NULL' :
echo 'NULL';
break;
case 'boolean' :
echo ($param ? 'bool(true)' : 'bool(false)');
break;
case 'integer' :
echo "int($param)";
break;
case 'double' :
echo "float($param)";
break;
case 'string' :
dumpString($param);
break;
case 'array' :
dumpArr($param);
break;
case 'object' :
dumpObj($param);
break;
case 'resource' :
echo 'resource';
break;
default :
echo 'UNKNOWN TYPE';
break;
}
}
}
function dumpString($param) {
$str = sprintf("string(%d) %s",strlen($param),$param);
echo $str;
}
function dumpArr($param) {
$len = count($param);
echo "array($len) {\r\n";
foreach($param as $key=>$val) {
if(is_array($val)) {
dumpArr($val);
} else {
echo sprintf('["%s"] => %s(%s)',$key,gettype($val),$val);
}
}
echo "}\r\n";
}
function dumpObj($param) {
$className = get_class($param);
$reflect = new ReflectionClass($param);
$prop = $reflect->getDefaultProperties();
echo sprintf("Object %s #1(%d) {\r\n",$className,count($prop));
foreach($prop as $key=>$val) {
echo "[\"$key\"] => ";
reconstructDump($val);
}
echo "}";
}
class MyClass
{
protected $_name;
function test()
{
echo "hello";
}
}
$str = "test";
reconstructDump(new MyClass(),$str);
echo "\r\n";
$arr2 = array(
"1" => "Ddaddad",
"one" => array("two" => "Dddd" ),
"three" => 1
);
reconstructDump($arr2);
reconstructDump(1,true,null);
exit;
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。