<?php
function
my_var_dump()
{
for
(
$i
= 0;
$i
<func_num_args(); ++
$i
)
{
$param
= func_get_arg(
$i
);
$ptype
=
gettype
(
$param
);
switch
(
$ptype
)
{
case
"NULL"
:
echo
"NULL"
;
break
;
case
"boolean"
:
var_dump_boolean(
$param
);
break
;
case
"integer"
:
var_dump_integer(
$param
);
break
;
case
"double"
:
var_dump_double(
$param
);
break
;
case
"string"
:
var_dump_string(
$param
);
break
;
case
"array"
:
var_dump_array(
$param
);
break
;
case
"object"
:
var_dump_object(
$param
);
break
;
case
"resource"
:
echo
"resource"
;
break
;
default
:
echo
"unknown type"
;
}
}
}
function
var_dump_boolean(
$bool
)
{
if
(
$bool
)
echo
"bool(true)"
;
else
echo
"bool(false)"
;
}
function
var_dump_integer(
$int
)
{
echo
"int($int)"
;
}
function
var_dump_double(
$double
)
{
echo
"float($double)"
;
}
/**
* param:String str
* des:输出字符串类型的变量
*/
function
var_dump_string(
$str
)
{
$len
=
strlen
(
$str
);
$value
=
"string($len) \"$str\""
;
echo
$value
;
}
function
var_dump_array(
$arr
)
{
$keys
=
array_keys
(
$arr
);
$len
=
count
(
$arr
);
echo
"array($len){"
;
for
(
$i
=0;
$i
<
$len
;
$i
++)
{
echo
" [\"$keys[$i]\"]=> "
;
$index
=
$keys
[
$i
];
my_var_dump(
$arr
[
$index
]);
}
echo
"}"
;
}
function
var_dump_prop(
$obj
)
{
$reflect
=
new
ReflectionClass(
$obj
);
$prop
=
$reflect
->getDefaultProperties();
$keys
=
array_keys
(
$prop
);
$len
=
count
(
$prop
);
echo
" ($len){"
;
for
(
$i
=0;
$i
<
$len
;
$i
++)
{
echo
" [\"$keys[$i]\"]=> "
;
$index
=
$keys
[
$i
];
my_var_dump(
$prop
[
$index
]);
}
echo
"}"
;
}
function
var_dump_object(
$obj
)
{
$objId
=1;
//对象id
$className
=get_class(
$obj
);
echo
"object($className)#$objId "
;
var_dump_prop(
$obj
);
}
/*以下为测试*/
class
MyClass
{
var
$sss
;
function
test()
{
echo
"Dd"
;
}
}
$ddd
=
"hhh"
;
my_var_dump(
new
MyClass());
$arr2
=
array
(
"Ddd"
=>
"Ddaddad"
,
"Dadadadad"
=>
array
(
"ddddd"
=>
"Dddd"
),
"Ddddad"
=>1);
my_var_dump(
$arr2
);
?>
|
描述:还不知道如何获取 对象的编号