为了账号安全,请及时绑定邮箱和手机立即绑定

PHP自己实现var_dump函数

标签:
PHP


<?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;


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消