方法 | 說明 |
---|---|
__call($name, $arguments) | 當呼叫不存在的方法時執行 |
__callStatic($name, $arguments) | 當呼叫不存在的 static 方法時執行 |
__get($name) | 當讀取不存在的屬性時執行 |
__set($name, $value) | 當設定不存在的屬性時執行 |
__isset($name) | 當使用不存在的屬性呼叫 isset() 或 empty() 時執行 |
__unset($name) | 當使用不存在的屬性呼叫 unset() 時執行 |
__sleep() | 在物件序列化之前執行 |
__wakeup() | 在物件序列化過程中重建物件 |
__toString() | 物件的字串形式 |
__invoke($x) | 當把物件當函數呼叫時執行 |
__set_state($an_array) | 當呼叫 var_export() 方法時執行 |
__clone() | 使用 clone 複製物件完成後執行 |
舉一例如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php class Demo { public function __call( $name , $arguments ) { echo "something wrong" ; } } $d = new Demo(); $d ->do_something(); /* 《程式語言教學誌》的範例程式 檔名:class17.php 功能:示範 PHP 程式 作者:張凱慶 時間:西元 2013 年 2 月 */ ?> |
此例改寫 __call()
3 4 5 | public function __call( $name , $arguments ) { echo "something wrong" ; } |
然後呼叫不存在的 do_something()
8 9 | $d = new Demo(); $d ->do_something(); |
執行結果如下

中英文術語對照 | |
---|---|
建構子 | constructor |
解構子 | destructor |
類別 | class |
方法 | method |
您可以繼續參考
類別與物件
相關目錄
回 PHP 快速導覽
回 PHP 教材
回首頁
參考資料
http://www.php.net/manual/en/language.oop5.magic.php
http://www.php.net/manual/en/language.oop5.overloading.php
http://www.php.net/manual/en/language.oop5.cloning.php
沒有留言:
張貼留言