首页 > 编程笔记 > PHP笔记 阅读:13

PHP __debugInfo()的用法(附带实例)

先来看一个 print_r() 函数调用的示例。
<?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 属性的值,见下图:

相关文章