download this file: func.debug.php view text/plain: func.debug.php file encoding: UTF-8 [goback]
<?php
##
## this file name is 'func.debug.php'
##
## example object
##
## [author]
## - Chilbong Kim<san2(at)linuxchannel.net>
##
## [changes]
## - 2003.07.11 : check is_array()
## - 2003.03.07 : new build
##
## [references]
##
## [usage]
##
## [example]
##
## do not set to $GLOBALS in $array
## $GLOBALS dump : _var_dump(get_defined_vars())
##
function _var_dump($mixed, $name='', $constants=0)
{
if(is_object($mixed))
{
_object_dump($mixed,'$'.$var);
return;
}
if(!is_array($mixed))
{
echo ($name ? '$'.$name.' = ' : '').@htmlspecialchars($mixed)."<BR>\n";
return;
}
## $mixed is array
##
foreach($mixed AS $k=>$v)
{
$var = $name ? "${name}[\"$k\"]" : $k;
if(!$constants) $var = '$'.$var;
if(is_array($v) && sizeof($v)>0)
{
echo "$var = ".$v."<BR>\n";
echo "<UL>\n";
_var_dump($v,$var,1);
echo "</UL>\n";
}
else if(is_object($v))
{
echo "$var = ".$v."<BR>\n";
_object_dump($v,$var);
}
else echo "$var = ".@htmlspecialchars($v)."<BR>\n";
}
}
function _object_dump($obj, $name='')
{
if(!is_object($obj)) return;
foreach($obj AS $k=>$v)
{
$var = $name ? $name.'->'.$k : '->'.$k;
echo "<UL>\n";
if(is_array($v)) _var_dump($v,$var,1);
else if(is_object($v)) _object_dump($v,$var);
echo "</UL>\n";
}
}
function _print_r($mixed)
{
echo "<PRE>\n";
print_r($mixed);
echo "</PRE>\n";
}
function _debug($key=31)
{
if(is_int($key)) {
if($key<1 || $key>31) $key = 31;
} else {
$type = array('vars'=>1,'funcs'=>2,'cons'=>4,'class'=>8,'files'=>16);
if(!$key = $type[$key]) $key = 15;
}
$bits = strrev(decbin($key));
echo "\n<DIV ALIGN='left'>\n";
if($bits[0]) {
echo "<P><B>VARIABLES :</B><P>\n";
if(preg_replace('/^([\d]+)\.([\d]+)\..+/','\\1\\2',PHP_VERSION) > 41) {
_var_dump($GLOBALS);
} else {
_var_dump(get_defined_vars());
}
}
if($bits[1]) {
echo "\n<P><B>FUNCTIONS :</B><P>\n";
_print_r(get_defined_functions());
}
if($bits[2]) {
echo "\n<P><B>CONSTANTS :</B><P>\n";
_var_dump(get_defined_constants(),'',1);
}
if($bits[3]) {
echo "\n<P><B>CLASSES :</B><P>\n";
foreach(get_declared_classes() AS $v) {
echo "<BR>class $v<BR>\n";
echo "{<UL>\n";
_var_dump(get_class_vars($v));
echo "</UL>}<BR>\n";
}
}
if($bits[4]) {
echo "\n<P><B>INCLUDED(or REQUIRED) FILES:</B><P>\n";
foreach(get_included_files() AS $v) echo "$v<BR>\n";
}
echo "\n</DIV>\n";
}
?>