php var dump object,php如何实现var_dump功能

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

692ca8e5c053f80fc07d812a847323d1.png

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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值