PHP中的__toString() 是什麼東西

__toString()  是魔術方法的一種,具體用途是當一個對象被看成字符串對待的時候,會觸發這個魔術方法 如下說明摘自PHP官方手冊php

public string __toString ( void )

__toString() 方法用於一個類被當成字符串時應怎樣迴應。例如 echo $obj; 應該顯示些什麼。此方法必須返回一個字符串,不然將發出一條 E_RECOVERABLE_ERROR 級別的致命錯誤。oop

Warning

不能在 __toString() 方法中拋出異常。這麼作會致使致命錯誤。this

Example #2 簡單示例spa

<?php
// Declare a simple class
class TestClass
{
    public $foo;

    public function __construct($foo) 
    {
        $this->foo = $foo;
    }

    public function __toString() {
        return $this->foo;
    }
}

$class = new TestClass('Hello');
echo $class;
?>

 

以上例程會輸出:.net

Hello

須要指出的是在 PHP 5.2.0 以前,__toString() 方法只有在直接使用於 echo 或 print 時才能生效。PHP 5.2.0 以後,則能夠在任何字符串環境生效(例如經過 printf(),使用 %s 修飾符),但不能用於非字符串環境(如使用 %d 修飾符)。自 PHP 5.2.0 起,若是將一個未定義 __toString() 方法的對象轉換爲字符串,會產生 E_RECOVERABLE_ERROR 級別的錯誤。code

相關文章
相關標籤/搜索