继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

PHP自己实现var_dump函数

安卓开发学习视频
关注TA
已关注
手记 299
粉丝 78
获赞 601


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


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP