php – 为我的类定制var_dump输出
是否可以覆盖自定义类的var_dump输出?
我想要这样的东西: class MyClass{ public $foo; public $bar; //pseudo-code public function __dump($foo,$bar) { return 'Foo:$foo,bar:$bar'; } } var_dump(array($instanceOfMyClass)); //it should output this: array(1) { [0] => class MyClass#1 (2) { Foo:valueOfFoo,bar:valueOfBar } } 我知道我可以使用一些第三方的var_dump替代方案,但是我想在我的库项目中自定义var_dump的行为. 谢谢.
在PHP 5.6.0中,您可以使用
__debugInfo() 魔术功能自定义
var_dump() 的输出.
例: class MyDateTime{ public $year,$month,$day,$hour,$minute,$second; public function __debugInfo() { return array( 'date' => $this->year . "-" . $this->month . "-" . $this->day,'time' => sprintf("%02d:%02d:%02d",$this->hour,$this->minute,$this->second),); } } $dt = new MyDateTime(); $dt->year = 2014; $dt->month = 9; $dt->day = 20; $dt->hour = 16; $dt->minute = 2; $dt->second = 41; var_dump($dt); 输出PHP 5.6.0: object(MyDateTime)#1 (2) { ["date"]=> string(9) "2014-9-20" ["time"]=> string(8) "16:02:41" } 输出PHP 5.0.0 – 5.5.16: object(MyDateTime)#1 (6) { ["year"]=> int(2014) ["month"]=> int(9) ["day"]=> int(20) ["hour"]=> int(16) ["minute"]=> int(2) ["second"]=> int(41) } 笔记: >
>它似乎与 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |