--- 第十一節--重載

WBOY
發布: 2016-07-29 08:34:58
原創
789 人瀏覽過

/*
+-------------------------------------------- ----------------------------------+
| = 本文為Haohappy讀> 
| = 中Classes and Objects一章的筆記 
| = 翻譯為主+個人心得 
| = 為避免可能發生的不必要的麻煩請勿轉載,謝謝歡迎批評指正,希望和所有PHP愛好者共同進步! 
| = PHP5研究中心: http://blog.csdn.net/haohappy2004
+------------- -------------------------------------------------- ----------------+
*/
第十一節--重載
PHP4中已經有了重載的語法來建立對於外部對象模型的映射,就像Java和COM那樣. PHP5帶來了強大的物件導向重載,允許程式設計師建立自訂的行為來存取屬性和呼叫方法.
重載可以透過__get, __set, and __call幾個特殊方法來進行. 當Zend引擎試圖訪問一個成員並沒有找到時,PHP將會調用這些方法.
在例6.14中,__get和__set代替所有對屬性變量數組的訪問. 如果必要,你可以實現任何類型你想要的過濾. 例如,腳本可以禁止設定屬性值, 在開始時用一定的前綴或包含一定類型的值.
__call方法說明了你如何調用未經定義的方法. 你呼叫未定義方法時,方法名稱和方法接收的參數將會傳給__call方法, PHP傳遞__call的值回傳給未定義的方法.
Listing 6.14 User-level overloading

複製程式碼 程式碼如下:

   class Overloader  array();  
       function __get($property_name)  
       {  
             
               return($this->properties[$property_name]);  
}  
           else  
           {  
               return(NULL);  
           }  
       }  
       function __set($property_name, $value)  
       {  
           $this->properties[ $property_name] = $value;  
       }  
       function __           print("Invoking $function_name()
n");  
           print( "Arguments: ");  
           print_r($args);  
      🎜>   }  
   $o = new Overloader();  
   //invoke __set( ) 給一個不存在的屬性變數賦值,啟動__set()  
   $o->dynaProp = "Dynamic Content";  
   //invoke Content";  
   //invoke __get( ->dynaProp . "
n");  
   //invoke __call() 啟動__call()  
   $o->dynaMethod("Leon"); 🎜>
以上就介紹了--- 第十一節--重載,包括了---方面的內容,希望對PHP教程有興趣的朋友有所幫助。


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