用PHP自己实现的var_dump函数 (没有用foreach输出数组)

本文介绍了一个自定义PHP函数my_var_dump,用于解析并输出变量的类型、值、对象属性等信息,包括布尔型、整型、浮点型、字符串、数组、对象和资源类型。通过该函数,可以深入理解PHP中不同数据类型的特性及其在实际编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php
    function my_var_dump()
    {
         for($i = 0; $i<func_num_args(); ++$i)
            {
                $param = func_get_arg($i);
                $ptype=gettype($param);
                switch($ptype)
                {
                    case "NULL":
                        echo "NULL";
                        break;
                    case "boolean":
                        var_dump_boolean($param);
                        break;
                    case "integer":
                        var_dump_integer($param);
                        break;
                    case "double":
                        var_dump_double($param);
                        break;
                    case "string":
                        var_dump_string($param);
                        break;
                    case "array":
                        var_dump_array($param);
                        break;
                    case "object":
                        var_dump_object($param);
                        break;
                    case "resource":
                        echo "resource";
                        break;
                    default:
                        echo "unknown type";
                }
            }
    }
      
    function var_dump_boolean($bool)
    {
        if($bool)
            echo "bool(true)";
        else
            echo "bool(false)";
    }
      
    function var_dump_integer($int)
    {
        echo "int($int)";
    }
      
    function var_dump_double($double)
    {
        echo "float($double)";
    }
    /**
    * param:String str
    * des:输出字符串类型的变量
    */
    function var_dump_string($str)
    {
        $len=strlen($str);
        $value="string($len) \"$str\"";
        echo $value;
    }
      
    function var_dump_array($arr)
    {
        $keys=array_keys($arr);
        $len=count($arr);
        echo "array($len){";
          
        for($i=0;$i<$len;$i++)
        {
            echo " [\"$keys[$i]\"]=> ";
            $index=$keys[$i];
            my_var_dump($arr[$index]);
        }
        echo "}";
    }
      
    function var_dump_prop($obj)
    {
        $reflect = new ReflectionClass($obj);
        $prop = $reflect->getDefaultProperties(); 
        $keys=array_keys($prop);
        $len=count($prop);
        echo " ($len){";
          
        for($i=0;$i<$len;$i++)
        {
            echo " [\"$keys[$i]\"]=> ";
            $index=$keys[$i];
            my_var_dump($prop[$index]);
        }
        echo "}";
    }
    function var_dump_object($obj)
    {
        $objId=1;  //对象id
        $className=get_class($obj);
        echo "object($className)#$objId ";
        var_dump_prop($obj); 
    }
      
    /*以下为测试*/
    class MyClass
    {
        var $sss;
        function test()
        {
            echo "Dd";
        }
    }
  
    $ddd="hhh";
    my_var_dump(new MyClass());
    $arr2=array("Ddd"=>"Ddaddad","Dadadadad"=>array("ddddd"=>"Dddd"),"Ddddad"=>1);
    my_var_dump($arr2);
?>
描述:还不知道如何获取 对象的编号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值