在这里讲到的最后一个“魔术方法”是__toString(),它是唯一一个与不存在的成员或方法毫无关系的方法。当一个对象被转换给一个字符串,就可使用该方法——或显式地通过使用cast(字符串)输出它,或隐式地通过作为一个参数把它传递给一个期盼获得字符串参数的函数,如print。代码清单1-6就是一个例子。
代码清单1-6 关于__toString()方法的例子
<?php
# __toString方法使用示范
class test2 {
protected $memb;
function __construct($memb) {
$this->memb = $memb;
}
function __toString() {
return ("test2 member.\n");
}
}
$x = new test2(1);
print $x;
?>
当执行时,该脚本将产生下面的输出。
test2 member.
__toString函数的返回值被输出。当底层对象使用在字符串的上下文时,__toString函数被调用。当需要输出包含奇怪成员的复杂对象,如网络或数据库连接或其他二进制对象时,此函数是非常有用的。