__debugInfo()和__tostring()方法一样,由var_dump()、print_r()打印对象体的时候,控制对象体要输出的属性和值;
在php中内置了一些特书的方法,这些特殊方法被称之为魔术方法,其也有特殊的命名规则,以“__”双下划线开头的方法和函数名,所以我们自定义的函数不应该用双下划下开头,目的是为了区分魔术方法。
__construct(), __autoload(),__destruct(), __call(), __callStatic(), __get()
, __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo() 等方法在 PHP 中被称为魔术方法(Magic methods)。在命名自己的类方法时不能使用这些方法名,除非是想使用其魔术功能。
支持版本:
(php5.6.0及其以上版本才可以用)
__debugInfo()定义以及用法:
__tostring()方法一样,由var_dump()、print_r()打印对象体的时候,控制对象体要输出的属性和值;__debugInfo方法通过自定义数组来返回需要打印的属性和值,如果不使用该魔术方法,则默认返回所有的属性和值。
__debugInfo()语法:
__debugInfo( void ) : array
参数解释:
参数 | 描述 |
---|---|
void(无参数) | void |
返回值:
array(返回值:数组)
php __debugInfo()演示示例
<?php
class Person {
private $age;
public function __construct($val) {
$this->age = $val;
}
public function __debugInfo() {
return array(
'ageSquared' => $this->age ** 2,
);
}
}
$obj_person = new Person(42);
var_dump($obj_person);
?>
以上示例会输出
object(Person)#1 (1) { ["ageSquared"]=> int(1764) }
转载注明:
感谢博主,喝杯咖啡~
感谢博主,喝杯咖啡~
还没有人发表评论