一、var_dump()
var_dump() 函数用于输出变量的相关信息。
var_dump() 函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
使用此函数的PHP 版本要求:
(PHP 4, PHP 5, PHP 7, PHP 8)
例如:
<?php $b = 3.1; $c = true; var_dump($b, $c); ?>
输出结果为:
float(3.1) bool(true)
对象的所有属性都会在输出中返回,除非该对象实现了 __debugInfo() 方法。
魔术方法是一种特殊的方法,当对对象执行某些操作时会覆盖 PHP 的默认操作。
二、魔术方法
__debuglnfo()就是一个魔术方法。
PHP 保留所有以 __ 开头的方法名称。 因此,除非覆盖 PHP 的行为,否则不建议使用此类方法名称。
当通过 var_dump() 转储对象,获取应该要显示的属性的时候, 该函数就会被调用。如果对象中没有定义该方法,那么将会展示所有的公有、受保护和私有的属性。
例如:
<?php class C { private $prop; public function __construct($val) { $this->prop = $val; } public function __debugInfo() { return [ 'propSquared' => $this->prop ** 2, ]; } } var_dump(new C(42)); ?>
输出结果:
object(C)#1 (1) { ["propSquared"]=> int(1764) }