前面,我们使用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;
代码显示结果如下图。