php实现“var_dump”功能的方法:首先创建一个php示例文件;然后定义一个reconstructDump方法;接着通过for循环的方式实现“var_dump”功能即可。

推荐:《PHP视频教程》
PHP实现一个类似var_dump函数的功能!
<?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 {
echo sprintf('["%s"] => %s(%s)',$key,gettype($val),$val);
}
}
echo "}\r\n";
}
function dumpObj($param) {
$className = get_class($param);
$reflect = new ReflectionClass($param);
$prop = $reflect->getDefaultProperties();
echo sprintf("Object %s #1(%d) {\r\n",$className,count($prop));
foreach($prop as $key=>$val) {
echo "[\"$key\"] => ";
reconstructDump($val);
}
echo "}";
}
class MyClass
{
protected $_name;
function test()
{
echo "hello";
}
}
$str = "test";
reconstructDump(new MyClass(),$str);
echo "\r\n";
$arr2 = array(
"1" => "Ddaddad",
"one" => array("two" => "Dddd" ),
"three" => 1
);
reconstructDump($arr2);
reconstructDump(1,true,null);
exit;
以上就是php如何实现var_dump功能的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号