__toString(),類別當成字串時的回應方法
#作用:
__toString() 方法用於一個類別被當成字串時應如何回應。例如 `echo $obj;` 應該要顯示些什麼。
注意:
此方法必須傳回字串,否則將發出一條 `E_RECOVERABLE_ERROR` 層級的致命錯誤。
警告:
不能在 __toString() 方法中拋出例外。這麼做會導致致命錯誤。
程式碼:
<?php class Person { public $sex; public $name; public $age; public function __construct($name="", $age=25, $sex='男') { $this->name = $name; $this->age = $age; $this->sex = $sex; } public function __toString() { return 'go go go'; } } $person = new Person('小明'); // 初始赋值 echo $person;
結果:
go go go
那麼如果類別中沒有 __toString() 這個魔術方法運行會發生什麼事呢?讓我們來測試下:
程式碼:
<?php class Person { public $sex; public $name; public $age; public function __construct($name="", $age=25, $sex='男') { $this->name = $name; $this->age = $age; $this->sex = $sex; } } $person = new Person('小明'); // 初始赋值 echo $person;
結果:
Catchable fatal error: Object of class Person could not be converted to string in D:\phpStudy\WWW\test\index.php on line 18 很明显,页面报了一个致命错误,这是语法所不允许的。
以上是PHP中 __toString()方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!