PHP__toString()方法

前面,我们使用print_r()函数显示过数组的信息,而在我们自定义的类中,如何显示更有意义的对象信息呢?我们复习一下print_r()函数的使用,如下面的代码。

class CCard  
{  
    public name = '';     publicage = 0;  
    public phone = '';  
}card = new CCard();  
print_r($card);

此代码显示结果如下:

CCard Object ( [name] => [age] => 0 [phone] => )

我们知道在PHP中可以使用print和echo语句显示字符串类型,但这两个语句是不能直接将对象自动转换成字符串的。

不过有时候,也许我们需要用自己定义的格式来显示对象信息,此时,我们可以在类中定义一个__toString()方法,这个方法的作用就是告诉print和echo语句,对象应该显示怎样的字符串内容,而这些内容就是__toString()方法的返回值。 如下面的代码,我们在CCard类中定义了__toString()方法。

class CCard  
{  
    public name = '';     publicage = 0;  
    public phone = '';     //     function __toString()     {         return 'name: '.this->name.'<br>'.  
        'age: '.this->age.'<br>'.         'phone: '.this->phone;  
    }  
}

现在,我们可以使用print或echo语句来显示CCard类实例的信息了,如下面的代码:

$card = new CCard();  
$card->name = 'Tom';  
$card->age = 35;  
$card->phone = '123456';  
echo $card;

代码显示结果如下图。

PHP toString方法

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程