程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 第十一節--重載 -- Classes and Objects in PHP5 [11]

第十一節--重載 -- Classes and Objects in PHP5 [11]

編輯:關於PHP編程

第十一節--重載
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)
         {

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved