PHPのReflection APIの詳しい説明

*文
リリース: 2023-03-18 15:30:01
オリジナル
1520 人が閲覧しました

この記事では主に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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!