PHP __debugInfo()的用法(附带实例)
先来看一个 print_r() 函数调用的示例。
默认情况下,使用 print_r() 或 var_dump() 函数查看对象信息时,会显示对象的所有属性数据,包括公共的、私有的和受保护的。本例中,调用 print_r() 函数查看 tAuto 类的实例 $car 时,就显示了它的所有属性,包括私有的 doors 属性。
如果限制(或简化)对象显示的信息,可以在类中定义 __debugInfo() 方法,它将返回一个数组,其中包含了对象属性的名称和数据。
下面的代码在 tAuto 类中添加 __debugInfo() 方法。
<?php require_once $_SERVER["DOCUMENT_ROOT"]."/demo/tAuto.php"; $car= new tAuto(); $car("A33",4); print_r($car); ?>代码执行结果见下图:

默认情况下,使用 print_r() 或 var_dump() 函数查看对象信息时,会显示对象的所有属性数据,包括公共的、私有的和受保护的。本例中,调用 print_r() 函数查看 tAuto 类的实例 $car 时,就显示了它的所有属性,包括私有的 doors 属性。
如果限制(或简化)对象显示的信息,可以在类中定义 __debugInfo() 方法,它将返回一个数组,其中包含了对象属性的名称和数据。
下面的代码在 tAuto 类中添加 __debugInfo() 方法。
<?php class tAuto { public function __debugInfo() { return ["model" => $this->model]; } // 其他代码 } ?>再次通过 print_r() 函数查看 tCar 对象的信息,只会看到 model 属性的值,见下图:
