本文章來給各位同學介紹一下關於php物件導向__tostring() 用法詳解,, __tostring() 方法是自動被呼叫的,是在直接輸出物件引用時自動呼叫的
我們前面說過在類裡面宣告「--」開始的方法名的方法(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 語句).
****如下
複製**
<?php
// declare a ****** class
class testclass
//定義乙個__tostring方法,返加乙個成員屬性$foo
public function __tostring()
}$class = new testclass('hello');
//直接輸出物件
echo $class;
?>
似曾相識,在php物件導向程式設計之魔術方法__set,曾經介紹了什麼是魔術方法,這一章又介紹乙個魔術方法__tostring()。
__tostring()是快速獲取物件的字串資訊的便捷方式,似乎魔術方法都有乙個「自動「的特性,如自動獲取,自動列印等,__tostring()也不例外,它是在直接輸出物件引用時自動呼叫的方法。
__tostring()的作用
當我們除錯程式時,需要知道是否得出正確的資料。比如列印乙個物件時,看看這個物件都有哪些屬性,其值是什麼,如果類定義了tostring方法,就能在測試時,echo列印物件體,物件就會自動呼叫它所屬類定義的tostring方法,格式化輸出這個物件所包含的資料。
下面我們來看乙個__tostring()的例項
**如下
複製**
<?php
02 class person
08 function say()
12 function __tostring()
15 }
16 $wblog = new person('wblog');
17 echo $wblog;//直接輸出物件引用則自動呼叫了物件中的__tostring()方法
18 $wblog->say();//試比較一下和上面的自動呼叫有什麼不同
19 ?>
程式輸出:
hello,wblog!
hello,wblog!
如果不定義「__tostring()」方法會怎麼樣呢?例如在上面**的基礎上,把「 __tostring()」方法遮蔽掉,再看一下程式輸出結果:
catchable fatal error: object of class person could not be converted to string
由此可知如果在類中沒有定義「__tostring()」方法,則直接輸出以象的引用時就會產生誤法錯誤,另外__tostring()方法體中需要有乙個返回值。
PHP物件導向 tostring 和
將乙個物件當做乙個字串來使用時,會自動呼叫該方法,並且在該方法中,可以返回一定的字串,以表明該物件轉換為字串之後的結果。該魔術方法比較常用。注意 如果沒有定義該方法,則物件無法當做字串來使用!ini set display errors 1 classa obj1 new a 張三 15,男 ech...
php物件導向之 toString
似曾相識,在php物件導向程式設計之魔術方法 set,曾經介紹了什麼是魔術方法,這一章又介紹乙個魔術方法 tostring tostring 是快速獲取物件的字串資訊的便捷方式,似乎魔術方法都有乙個 自動 的特性,如自動獲取,自動列印等,tostring 也不例外,它是在直接輸出物件引用時自動呼叫的...
PHP物件導向
1 什麼是物件導向 起初,物件導向 是專指在程式設計中採用封裝 繼承 抽象等設計方法。可是,這個定義顯然不能再適合現在情況。物件導向的思想已經涉及到軟體開發的各個方面。如 物件導向的分析 ooa,object oriented analysis 物件導向的設計 ood,object oriented...