色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

第十一節--重載

/*
+-------------------------------------------------------------------------------+
| = 本文為Haohappy讀<<Core php Programming>> 
| = 中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
復制代碼 代碼如下:<?php  
   class Overloader  
   {  
       private $properties = array();  
       function __get($property_name)  
       {  
           if(isset($this->properties[$property_name]))  
           {  
               return($this->properties[$property_name]);  
           }  
           else  
           {  
               return(NULL);  
           }  
       }  
       function __set($property_name, $value)  
       {  
           $this->properties[$property_name] = $value;  
       }  
       function __call($function_name, $args)  
       {  
           print("Invoking $function_name()<br>/n");  
           print("Arguments: ");  
           print_r($args);  
           return(TRUE);  
       }  
   }  
   $o = new Overloader();  
   //invoke __set() 給一個不存在的屬性變量賦值,激活__set()  
   $o->dynaProp = "Dynamic Content";  
   //invoke __get() 激活__get()  
   print($o->dynaProp . "<br>/n");  
   //invoke __call() 激活__call()  
   $o->dynaMethod("Leon", "Zeev");  
?>  

php技術第十一節--重載,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 大田县| 会同县| 龙陵县| 仁布县| 孝昌县| 平江县| 县级市| 鄯善县| 六枝特区| 牡丹江市| 特克斯县| 保山市| 安国市| 海阳市| 白沙| 民丰县| 朝阳区| 伊春市| 晋州市| 阿拉尔市| 临夏市| 宾阳县| 永清县| 靖远县| 八宿县| 南昌市| 建瓯市| 白水县| 通山县| 台安县| 竹溪县| 吐鲁番市| 南部县| 高唐县| 贵阳市| 双桥区| 竹北市| 扶风县| 东乡族自治县| 蓝山县| 鹿邑县|