好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php如何实现var_dump功能

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如何实现var_dump功能的详细内容...

  阅读:45次