PHP中 __toString()方法詳解

2020-07-16 10:05:40
__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:phpStudyWWWtestindex.php on line 18
很明顯,頁面報了一個致命錯誤,這是語法所不允許的。

以上就是PHP中 __toString()方法詳解的詳細內容,更多請關注TW511.COM其它相關文章!