Rumah > pembangunan bahagian belakang > masalah PHP > php如何实现var_dump功能

php如何实现var_dump功能

藏色散人
Lepaskan: 2023-03-05 06:58:01
asal
2855 orang telah melayarinya

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

php如何实现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 &#39;NULL&#39; :
                    echo &#39;NULL&#39;;
                    break;
                case &#39;boolean&#39; :
                    echo ($param ? &#39;bool(true)&#39; : &#39;bool(false)&#39;);
                    break;
                case &#39;integer&#39; :
                    echo "int($param)";
                    break;
                case &#39;double&#39; :
                    echo "float($param)";
                    break;
                case &#39;string&#39; :
                    dumpString($param);
                    break;
                case &#39;array&#39; :
                    dumpArr($param);
                    break;
                case &#39;object&#39; :
                    dumpObj($param);
                    break;
                case &#39;resource&#39; :
                    echo &#39;resource&#39;;
                    break;
                default :
                    echo &#39;UNKNOWN TYPE&#39;;
                    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(&#39;["%s"] => %s(%s)&#39;,$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;
Salin selepas log masuk

 

Atas ialah kandungan terperinci php如何实现var_dump功能. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan