php __tostring 与 tostring
生活随笔
收集整理的這篇文章主要介紹了
php __tostring 与 tostring
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
原文: 問:內(nèi)容是一樣,不知道前面那兩個(gè)特殊的下劃線有什么意義,是同一個(gè)類中的兩個(gè)方法? function __toString()
{return $this->content;}//輸出字符串function toString()
{return $this->content;
} 回答: 執(zhí)行的結(jié)果相同. 區(qū)別在于,
前一個(gè)是魔術(shù)函數(shù), 在需要字符串值的地方會自動調(diào)用它進(jìn)行對象的類型轉(zhuǎn)換.
后一個(gè)需要在代碼中明確調(diào)用才有機(jī)會執(zhí)行. 實(shí)例 class MyClass {public function __toString(){return 'call __toString()';}public function toString(){return 'call toString()';} }$my = new MyClass(); echo $my . '<br />'; //自動調(diào)用(隱式)__toString轉(zhuǎn)成string echo $my->toString() . '<br />'; //調(diào)用(顯式)toString去轉(zhuǎn)成string echo $my->__toString() . '<br />'; //如果這樣調(diào)用, 代碼會不好看 echo (string)$my . '<br />';
前一個(gè)是魔術(shù)函數(shù), 在需要字符串值的地方會自動調(diào)用它進(jìn)行對象的類型轉(zhuǎn)換.
后一個(gè)需要在代碼中明確調(diào)用才有機(jī)會執(zhí)行. 實(shí)例 class MyClass {public function __toString(){return 'call __toString()';}public function toString(){return 'call toString()';} }$my = new MyClass(); echo $my . '<br />'; //自動調(diào)用(隱式)__toString轉(zhuǎn)成string echo $my->toString() . '<br />'; //調(diào)用(顯式)toString去轉(zhuǎn)成string echo $my->__toString() . '<br />'; //如果這樣調(diào)用, 代碼會不好看 echo (string)$my . '<br />';
?
__toString()會在需要轉(zhuǎn)成字符串時(shí), 會隱式自動調(diào)用它, 在PHP內(nèi)部.? 這個(gè)也是來自JAVA的. 建議在__toString()中調(diào)用toString(), 這樣就不會代碼重復(fù)了. ?轉(zhuǎn)自:
單黨育的BLOG.PHP?-toString()辨析.http://blog.sina.com.cn/s/blog_569767bf01000c37.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的php __tostring 与 tostring的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微闪贴贷款什么意思 银票贴现和贷款的区别
- 下一篇: 源码编译安装mysql