この記事では主にPHP Reflection APIを紹介し、Reflectionクラス、ReflectionExceptionクラス、ReflectionFunctionクラス、ReflectionParameterクラス、ReflectionClassクラス、ReflectionMethodクラスなどについて説明します。お役に立てれば幸いです。
PHP Reflection API は、PHP5 でのみ利用可能な新機能であり、クラス、メソッド、プロパティ、パラメーターなどに関するコメントを含む詳細情報をエクスポートまたは抽出するために使用されます。
PHP リフレクション API には以下が含まれます:
class Reflection { } interface Reflector { } class ReflectionException extends Exception { } class ReflectionFunction implements Reflector { } class ReflectionParameter implements Reflector { } class ReflectionMethod extends ReflectionFunction { } class ReflectionClass implements Reflector { } class ReflectionObject extends ReflectionClass { } class ReflectionProperty implements Reflector { } class ReflectionExtension implements Reflector { }
具体的な API の説明:
①Reflection クラス
②ReflectionException クラス
このクラスは標準クラスを継承しており、特別なメソッドはありませんと属性。
③ReflectionFunctionクラス
④ReflectionParameterクラス:
⑤ReflectionClassクラス:
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() } ?>
⑥ReflectionMethod クラス:
⑦ReflectionPropertyクラス:
⑧ReflectionExtensionクラス
使用例:
sex = "male"; } public function action(){ echo "来自http://www.jb51.net的测试"; } } $class = new ReflectionClass('Person'); //获取属性 foreach($class->getProperties() as $property) { echo $property->getName()."\n"; } //获取方法 print_r($class->getMethods()); $p1 = new Person(); $obj = new ReflectionObject($p1); //获取对象和类的属性 print_r($obj->getProperties());
上記のコードでオブジェクトとクラスが取得するプロパティが異なるのは明らかです。オブジェクトはインスタンス化によって構築されるため、性別属性を追加すると、PHP Reflection は実際に多くの有用な情報を取得できます。
関連する推奨事項:
初心者 php API の初めての体験 php api ドキュメント php api インターフェイス開発 php Web ap
Turing Robot の概要 php API_PHP チュートリアル
独自のものを構築するPHP フレームワーク経験 (2) php API フレームワーク php WeChat 開発フレームワーク php ci フレームワークの教育
以上がPHPのReflection APIの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。