我們前面說過在類里面聲明“__”開始的方法名的方法(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 語句)。
~~~
1 <?php
2 // Declare a simple class
3 class TestClass
4 {
5 public $foo;
6
7 public function __construct($foo) {
8 $this->foo = $foo;
9 }
10
11 //定義一個__toString方法,返加一個成員屬性$foo
12 public function __toString() {
13 return $this->foo;
14 }
15 }
16
17 $class = new TestClass('Hello');
18
19 //直接輸出對象
20 echo $class;
21 ?>
~~~
上例輸出:Hello
- 1.什么是面向對象
- 2.什么是類,什么是對象,類和對象這間的關系
- 3.什么是面向對象編程呢
- 4.如何抽象出一個類
- 5.如何實例化對象
- 6.如何去使用對象中的成員
- 7.特殊的引用this的使用
- 8.構造方法__construct()與析構方法__destruct()
- 9.封裝性(var與public,protected,private的關系)
- 10.__set(),__get(),__isset(),__unset()四個方法的應用
- 11.類的繼承
- 12.重載新的方法(parent::)
- 13.訪問類型(public,protected,private)
- 14.final關鍵字的應用
- 15.static和const關鍵字的使用(self::)
- 16.__toString()方法
- 17.克隆對象__clone()方法
- 18.__call()處理調用錯誤
- 19.抽象方法和抽象類(abstract)
- 20.PHP5接口技術(interface)
- 21.多態的應用
- 22.把對象串行化serialize()方法,__sleep()方法,__wakeup()方法
- 23.自動加載類 __autoload()函數