我有一个类,它实际上对一个复杂的数组进行操作,以使操作更简单。原始数组的格式如下所示:
array(
array(
"name" =>"foo",
"type" =>8, //The array is NBT format and 8 stands for string
"value" =>"somevalue"
)
}
该类将上面的数组作为构造函数:
class NBT_traverser implements ArrayAccess {
function __construct(&$array) {
$this->array = $array;
}
}
然后,这是访问成员的方式:
$parser = new NBT_traverser($somearray);
echo $parser["foo"]; //"somevalue"
当我print_R
上课时,我得到了它的值列表和原始的复杂数组。像这样:
object(NBT_traverser)#2 (1) {
["nbt":"NBT_traverser":private]=> &array(1) {
/*Tons of ugly array contents*/
}
相反,我想得到这样的输出print_r
:
array(
"foo" => "somevalue"
)
是否有可能欺骗print_r
这样做?当前的行为使得使用类进行调试比没有它更难。
当然,我可以编写自己的方法来打印它,但我想让该类的用户使用更简单。相反,我想提供print_R
一些东西,它将打印为数组。