我們都知道,在我們實例化一個類別之後,存取類別的屬性時,都是$實例化名稱->屬性名稱這樣的格式去訪問,那麼你們有沒有直接用echo或print輸出過對象試試結果呢。有的人說,這樣應該是不行的,會報錯吧。沒錯,這樣直接輸出確實會報錯,但是,當我們用了魔術方法__toString時就可以了。 __toString()方法會先將物件傳化成字串在輸出,這樣就可以用echo或是print輸出了。
實例分析:
<?php header("content-type:text/html;charset=utf-8"); class Preson{ public $name; private $age; function __construct($name,$age) { $this->name = $name; $this->age = $age; } public function __toString() { return $this->name . '今年已经' . $this->age . '岁了'; } } $preson = new Preson('小明',18); echo $preson;
程式碼分析:
我們先建立了一個人的類,定義屬性,建立建構方法,然後我們實例化這個類,最後直接echo這個類別名稱。這是會發現,頁面上會顯示錯誤訊息: Object of class Preson could not be converted to string in D:\WWW\tostring.php on line 15。意思是物件的類別人不能轉換為字串不能輸出。所以我們加上__toString()方法,就可以了,在方法中直接回傳所需的結果就可以了。
以上是魔術方法___toString()實例詳解(php物件導向進階教學)的詳細內容。更多資訊請關注PHP中文網其他相關文章!