php__debugInfo()方法是什么,怎么用的?

PHP / 1080人浏览 / 0人评论

__debugInfo()和__tostring()方法一样,由var_dump()、print_r()打印对象体的时候,控制对象体要输出的属性和值;

PHP5中的特殊方法

在php中内置了一些特书的方法,这些特殊方法被称之为魔术方法,其也有特殊的命名规则,以“__”双下划线开头的方法和函数名,所以我们自定义的函数不应该用双下划下开头,目的是为了区分魔术方法。

PHP魔术方法有哪些呢?

__construct()__autoload()__destruct()__call()__callStatic()__get()
__set()__isset()__unset()__sleep()__wakeup()__toString()__invoke()__set_state()__clone()__debugInfo() 等方法在 PHP 中被称为魔术方法(Magic methods)。在命名自己的类方法时不能使用这些方法名,除非是想使用其魔术功能。

php __debugInfo()函数

支持版本:
(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) }

转载注明:

0 条评论

还没有人发表评论

发表评论 取消回复

记住我的信息,方便下次评论
有人回复时邮件通知我