28 private static $_objects;
29 private static $_output;
30 private static $_depth;
40 public static function dump($var,$depth=10,$highlight=
false)
54 public static function dumpAsString($var,$depth=10,$highlight=
false)
57 self::$_objects=array();
59 self::dumpInternal($var,0);
62 $result=highlight_string(
"<?php\n".self::$_output,
true);
63 self::$_output=preg_replace(
'/<\\?php<br \\/>/',
'',$result,1);
65 return self::$_output;
72 private static function dumpInternal($var,$level)
77 self::$_output.=$var?
'true':
'false';
80 self::$_output.=
"$var";
83 self::$_output.=
"$var";
86 self::$_output.=
"'".addslashes($var).
"'";
89 self::$_output.=
'{resource}';
92 self::$_output.=
"null";
95 self::$_output.=
'{unknown}';
98 if(self::$_depth<=$level)
99 self::$_output.=
'array(...)';
101 self::$_output.='array()';
104 $keys=array_keys($var);
105 $spaces=str_repeat(
' ',$level*4);
106 self::$_output.=
"array\n".$spaces.
'(';
107 foreach($keys as $key)
109 self::$_output.=
"\n".$spaces.
' ';
110 self::dumpInternal($key,0);
111 self::$_output.=
' => ';
112 self::dumpInternal($var[$key],$level+1);
114 self::$_output.=
"\n".$spaces.
')';
118 if(($id=array_search($var,self::$_objects,
true))!==
false)
119 self::$_output.=get_class($var).
'#'.($id+1).
'(...)';
120 elseif(self::$_depth<=$level)
121 self::$_output.=get_class($var).'(...)';
124 $id=array_push(self::$_objects,$var);
125 $className=get_class($var);
126 $members=(array)$var;
127 $spaces=str_repeat(
' ',$level*4);
128 self::$_output.=
"$className#$id\n".$spaces.
'(';
129 foreach($members as $key=>$value)
131 $keyDisplay=strtr(trim($key),array(
"\0"=>
':'));
132 self::$_output.=
"\n".$spaces.
" [$keyDisplay] => ";
133 self::$_output.=self::dumpInternal($value,$level+1);
135 self::$_output.=
"\n".$spaces.
')';