🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
我们前面说过在类里面声明“__”开始的方法名的方法(PHP给我们提供的),都是在某一时刻不同情况下自动调用执行的方 法,“__toString()”方法也是一样自动被调用的,是在直接输出对象引用时自动调用的, 前面我们讲过对象引用是一个指针,比如 说:“$p=new Person()“中,$p就是一个引用,我们不能使用echo 直接输出$p,这样会输 出`Catchable fatal error: Object of class Person could not be converted to string`这样的错误,如果你在类里面定义了“__toString()”方法,在直接输出对象引用的时候,就不会产生错误,而是自动调用 了”__toString()”方法, 输出“__toString()”方法中返回的字符,所以“__toString()”方法一定要有个返回值(return 语句)。 ~~~ 1 <?php 2 // Declare a simple class 3 class TestClass 4 { 5 public $foo; 6 7 public function __construct($foo) { 8 $this->foo = $foo; 9 } 10 11 //定义一个__toString方法,返加一个成员属性$foo 12 public function __toString() { 13 return $this->foo; 14 } 15 } 16 17 $class = new TestClass('Hello'); 18 19 //直接输出对象 20 echo $class; 21 ?> ~~~ 上例输出:Hello