亚洲乱码卡一卡二卡三永久-亚洲乱码一二三四区-亚洲乱码一区二区三区在线观看-亚洲伦理一区-成人在色线视频在线观看免费大全-成人在线91

反射的理解

  它是指在php的運行狀態中,擴展分析php程序,導出或者提取出關于類、方法、屬性、參數等詳細信息,甚至包括注釋。這種動態獲取的信息以及動態調用對象的方法的功能稱為反射API.反射是操縱面向對象模型中元模型的API,其功能十分強大,可以幫助我們構建復雜,可擴展的應用。(ps:包括在工廠模式中的使用)

  反射API是php內建的oop技術擴展,包括一些類、異常和接口,綜合使用他們可用來幫助我們分析其它類,接口,方法,屬性和擴展。這些oop擴展被稱為反射。

  ReflectionClass

  [php]

  

  class ReflectionClass implements Reflector

  {

  final private __clone()

  public object __construct(string name)

  public string __toString()

  public static string export()

  //導出該類的詳細信息

  public string getName()

  //取得類名或接口名

  public bool isInternal()

  //測試該類是否為系統內部類

  public bool isUserDefined()

  //測試該類是否為用戶自定義類

  public bool isInstantiable()

  //測試該類是否被實例化過

  public bool hasConstant(string name)

  //測試該類是否有特定的常量

  public bool hasMethod(string name)

  //測試該類是否有特定的方法

  public bool hasProperty(string name)

  //測試該類是否有特定的屬性

  public string getFileName()

  //取得定義該類的文件名,包括路徑名

  public int getStartLine()

  //取得定義該類的開始行

  public int getEndLine()

  //取得定義該類的結束行

  public string getDocComment()

  //取得該類的注釋

  public ReflectionMethod getConstructor()

  //取得該類的構造函數信息

  public ReflectionMethod getMethod(string name)

  //取得該類的某個特定的方法信息

  public ReflectionMethod[] getMethods()

  //取得該類的所有的方法信息

  public ReflectionProperty getProperty(string name)

  //取得某個特定的屬性信息

  public ReflectionProperty[] getProperties()

  //取得該類的所有屬性信息

  public array getConstants()

  //取得該類所有常量信息

  public mixed getConstant(string name)

  //取得該類特定常量信息

  public ReflectionClass[] getInterfaces()

  //取得接口類信息

  public bool isInterface()

  //測試該類是否為接口

  public bool isAbstract()

  //測試該類是否為抽象類

  public bool isFinal()

  //測試該類是否聲明為final

  public int getModifiers()

  //取得該類的修飾符,返回值類型可能是個資源類型

  //通過Reflection::getModifierNames($class->getModifiers())進一步讀取

  public bool isInstance(stdclass object)

  //測試傳入的對象是否為該類的一個實例

  public stdclass newInstance(mixed* args)

  //創建該類實例

  public ReflectionClass getParentClass()

  //取得父類

  public bool isSubclassOf(ReflectionClass class)

  //測試傳入的類是否為該類的父類

  public array getStaticProperties()

  //取得該類的所有靜態屬性

  public mixed getStaticPropertyValue(string name [, mixed default])

  //取得該類的靜態屬性值,若private,則不可訪問

  public void setStaticPropertyValue(string name, mixed value)

  //設置該類的靜態屬性值,若private,則不可訪問,有悖封裝原則

  public array getDefaultProperties()

  //取得該類的屬性信息,不含靜態屬性

  public bool isIterateable()

  public bool implementsInterface(string name)

  //測試是否實現了某個特定接口

  public ReflectionExtension getExtension()

  public string getExtensionName()

  }

  ?>

  工廠模式應用:

  [php]

  class MoveDataFactory

  {

  /**

  * Description:簡單工廠模式,根據mode選取不同實例化對象

  * @return 對象實例

  */

  public function GetMoveClass($classname)

  {

  $reflectionclass = new ReflectionClass($classname);

  return $reflectionclass->newInstance();

  }

  }

穩定

產品高可用性高并發

貼心

項目群及時溝通

專業

產品經理1v1支持

快速

MVP模式小步快跑

承諾

我們選擇聲譽

堅持

10年專注高端品質開發
  • 返回頂部
主站蜘蛛池模板: 五月桃花网婷婷亚洲综合 | 香港三级日本三级人妇三级四 | 国内成人精品视频 | 一级片一区 | 免费一级黄 | 色网站综合 | 国产凹凸一区在线观看视频 | 色avav| 天天操天天操天天操天天操 | 亚洲香蕉视频 | 波多野结衣免费一区二区三区香蕉 | 欧美国产黄色 | 99re在线视频 | 操美女在线 | 九九香蕉视频 | 日本一区二区高清免费不卡 | 19国产精品麻豆免费观看 | 欧美久久天天综合香蕉伊 | 天天射天天做 | 日韩不卡视频在线 | 激情爽毛片私人影院 | 成人动漫视频观看免费 | 成人三级视频在线观看 | 国产成人影院一区二区 | 日韩亚洲人成网站 | 精品午夜一区二区三区在线观看 | 免费在线国产视频 | 成年人免费视频网站 | 日本黄大片在线观看 | 国产精品香蕉在线一区二区 | 天天干天天骑 | 性生交大片免费一级 | 女bbbbxxxx毛片视频 | 搞黄视频网站 | 久草人体 | 国产成人精品日本亚洲11 | 日本视频www色变态 日本爽p大片免费观看 | 久草手机在线视频 | 日批网站免费 | 亚洲免费观看视频 | 日日草天天干 |