<?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 {
$valType = gettype($val);
echo "[\"$key\"] => $valType($val)\r\n";
}
}
echo "}\r\n";
}
function dumpObj($param) {
$className = get_class($param);
echo "object($className)#1 ";
$reflect = new ReflectionClass($param);
$prop = $reflect->getDefaultProperties();
$len = count($prop);
echo "($len) {\r\n";
foreach($prop as $key=>$val) {
echo "[\"$key\"] => ";
reconstructDump($val);
}
echo "}";
}
class MyClass
{
protected $_name;
function test()
{
echo "hello";
}
}
$str = "test";
reconstructDump(new MyClass());
echo "\r\n";
$arr2 = array(
"1" => "Ddaddad",
"one" => array("two" => "Dddd" ),
"three" => 1
);
reconstructDump($arr2);
reconstructDump(1,true,null);
exit;本文出自 “我相信” 博客,请务必保留此出处http://mrcelite.blog.51cto.com/2977858/1757726
原文:http://mrcelite.blog.51cto.com/2977858/1757726