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

<?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 );
?>
描述:还不知道如何获取 对象的编号
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值