首頁 > 後端開發 > php教程 > php __tostring 与 tostring

php __tostring 与 tostring

WBOY
發布: 2016-06-23 14:36:15
原創
1026 人瀏覽過

原文:

问:内容是一样,不知道前面那两个特殊的下划线有什么意义,是同一个类中的两个方法?

function __toString(){        return $this->content; }//输出字符串 function toString(){        return $this->content;}
登入後複製

回答:

  执行的结果相同. 区别在于,
  前一个是魔术函数, 在需要字符串值的地方会自动调用它进行对象的类型转换.
  后一个需要在代码中明确调用才有机会执行.

class MyClass{    public function __toString()    {        return 'call __toString()';    }    public function toString()    {        return 'call toString()';    }}$my = new MyClass();echo $my . '<br />'; //自动调用(隐式)__toString转成stringecho $my->toString() . '<br />'; //调用(显式)toString去转成stringecho $my->__toString() . '<br />'; //如果这样调用, 代码会不好看echo (string)$my . '<br />';
登入後複製

 

  __toString()会在需要转成字符串时, 会隐式自动调用它, 在PHP内部.  这个也是来自JAVA的. 建议在__toString()中调用toString(), 这样就不会代码重复了.

转自:   单党育的BLOG.PHP -toString()辨析.http://blog.sina.com.cn/s/blog_569767bf01000c37.html

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板