CVarDumper::dump()发现bug!

测试代码如下:




$res = array(

		array("00"=>"000"), 

		array("11"=>"111"),

	);

	$res = json_encode($res);

	echo $res;

	echo "<br /><br />";

	$res = json_decode($res);

	var_dump($res);

	echo "<br /><br />";

	CVarDumper::dump($res, 10, true);

	die();



下面是输出结果:




[{"00":"000"},{"11":"111"}]


array(2) { [0]=> object(stdClass)#63 (1) { ["00"]=> string(3) "000" } [1]=> object(stdClass)#64 (1) { ["11"]=> string(3) "111" } }


array

(

    [0] => stdClass#1

    (

        [00] => '000'

    )

    [1] => stdClass#2

    (

        [11] => null

    )

) 



bug就在于,

用var_dump()出来的结果,"11"=>"111",

而用CVarDumper::dump()出来的结果是,"11"=>null

还真别说,我测试一下,直接出错




PHP Error

描述


Undefined index: 11

源文件


E:\htdocs\lib\yii2\framework\utils\CVarDumper.php(129)


00117:                 else

00118:                 {

00119:                     $id=array_push(self::$_objects,$var);

00120:                     $className=get_class($var);

00121:                     $members=(array)$var;

00122:                     $keys=array_keys($members);

00123:                     $spaces=str_repeat(' ',$level*4);

00124:                     self::$_output.="$className#$id\n".$spaces.'(';

00125:                     foreach($keys as $key)

00126:                     {

00127:                         $keyDisplay=strtr(trim($key),array("\0"=>':'));

00128:                         self::$_output.="\n".$spaces."    [$keyDisplay] => ";

00129: self::$_output.=self::dumpInternal($members[$key],$level+1);

00130:                     }

00131:                     self::$_output.="\n".$spaces.')';






多谢,已经更正了。