程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP 高級編程(2)

PHP 高級編程(2)

編輯:關於PHP編程

PHP 5 具有完整的反射 API,添加了對類、接口、函數、方法和擴展進行反向工程的能力。 此外,反射 API 提供了方法來取出函數、類和方法中的文檔注釋。通過使用反射API可以分析其他的類、接口、方法、屬性、函數和擴展。下面舉例展示PHP自身類 Reflection 的定義:

Reflection::export(new ReflectionClass('Reflection'));

打印結果如下:

Class [ <internal:Reflection> class Reflection ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [2] {
    Method [ <internal:Reflection> static public method getModifierNames ] {

      - Parameters [1] {
        Parameter #0 [ <required> $modifiers ]
      }
    }

    Method [ <internal:Reflection> static public method export ] {

      - Parameters [2] {
        Parameter #0 [ <required> Reflector $reflector ]
        Parameter #1 [ <optional> $return ]
      }
    }
  }

  - Properties [0] {
  }

  - Methods [0] {
  }
}

從打印結果可以看出 export 是 Reflection 類的一個public 的靜態方法,提供兩個參數,一個必須提供的 reflector類型 ,另一個是可選的,bool類型。不只是export,反射API還有很多,通過這些API我們還可以查詢類的元數據,動態的調用類的靜態方法,反射還能被用來創建自動穩定編寫系統。反射API定義了大量is和has類型的函數,它們可以用來在代碼中執行條件判斷。比如通過isUserDefined()來判斷已經加載的類中哪些是用戶定義的。

(未完待續)

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