<?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