ホームページ バックエンド開発 PHPチュートリアル PHP リフレクション API_PHP チュートリアル

PHP リフレクション API_PHP チュートリアル

Jul 14, 2016 am 10:06 AM
api php について 分析する 反射 輸出 拡大する 理解する プログラム 走る

反省の理解
PHP の実行状態で PHP プログラムの分析を拡張し、クラス、メソッド、属性、パラメーターなどの詳細情報、さらにはコメントをエクスポートまたは抽出することを指します。この動的に情報を取得し、オブジェクトのメソッドを動的に呼び出す機能をリフレクションAPIと呼びます。リフレクションは、オブジェクト指向モデルのメタモデルを操作するための API であり、非常に強力で、複雑でスケーラブルなアプリケーションの構築に役立ちます。 (追記: ファクトリーモードでの使用を含む)
Reflection API は、PHP の組み込み oop テクノロジ拡張機能であり、いくつかのクラス、例外、インターフェイスを一緒に使用すると、他のクラス、インターフェイス、メソッド、プロパティ、拡張機能の分析に役立ちます。これらの oop 拡張はリフレクションと呼ばれます。
リフレクションクラス
[php]
<?php
クラス ReflectionClass はリフレクターを実装します
{
最終プライベート __clone()
パブリックオブジェクト __construct(文字列名)
パブリック文字列 __toString()
パブリック静的文字列エクスポート()
//このクラスの詳細情報をエクスポートします
パブリック文字列 getName()
//クラス名またはインターフェース名を取得します
パブリックブール isInternal()
//このクラスがシステムの内部クラスかどうかをテストします
パブリックブール isUserDefined()
//クラスがユーザー定義クラスかどうかをテストします
パブリックブール isInstantiable()
//クラスがインスタンス化されているかどうかをテストします
public bool hasConstant(文字列名)
//クラスに特定の定数があるかどうかをテストします
public bool hasMethod(文字列名)
//このクラスに特定のメソッドがあるかどうかをテストします
public bool hasProperty(文字列名)
//クラスに特定の属性があるかどうかをテストします
パブリック文字列 getFileName()
//パス名を含む、このクラスを定義するファイル名を取得します
パブリック int getStartLine()
//このクラスを定義する開始行を取得します
パブリック int getEndLine()
//このクラスを定義する終了行を取得します
パブリック文字列 getDocComment()
//このクラスのコメントを取得します
パブリック ReflectionMethod getConstructor()
//このクラスのコンストラクター情報を取得します
パブリック ReflectionMethod getMethod(文字列名)
//このクラスの特定のメソッド情報を取得します
パブリック ReflectionMethod[] getMethods()
//このクラスのすべてのメソッド情報を取得します
パブリック ReflectionProperty getProperty(文字列名)
//特定の属性情報を取得します
パブリック ReflectionProperty[] getProperties()
//このクラスのすべての属性情報を取得します
パブリック配列 getConstants()
//このクラスのすべての定数情報を取得します
パブリック混合 getConstant(文字列名)
//このタイプの特定の定数情報を取得します
パブリック ReflectionClass[] getInterfaces()
//インターフェースクラス情報を取得します
パブリックブール isInterface()
//クラスがインターフェースかどうかをテストします
パブリックブール isAbstract()
//クラスが抽象クラスかどうかをテストします
パブリックブール isFinal()
//クラスがfinalと宣言されているかどうかをテストします
パブリック int getModifiers()
//このクラスの修飾子を取得します。戻り値の型はリソース型である可能性があります
//Reflection::getModifierNames($class->getModifiers()) をさらに読んでください
パブリックブール isInstance(stdclass オブジェクト)
//渡されたオブジェクトがこのクラスのインスタンスであるかどうかをテストします
パブリック stdclass newInstance(混合* 引数)
//このクラスのインスタンスを作成します
パブリック ReflectionClass getParentClass()
//親クラスを取得します
パブリックブール isSubclassOf(ReflectionClass クラス)
//渡されたクラスがこのクラスの親クラスかどうかをテストします
パブリック配列 getStaticProperties()
//このクラスのすべての静的プロパティを取得します
パブリック混合 getStaticPropertyValue(文字列名 [, 混合デフォルト])
//このクラスの静的属性値を取得します。プライベートの場合はアクセスできません
Public void setStaticPropertyValue(文字列名, 混合値)
//このクラスの静的属性値を設定します。プライベートの場合、アクセスできず、カプセル化の原則に違反します
パブリック配列 getDefaultProperties()
//このクラスの静的属性を除く属性情報を取得します
パブリックブール isIterateable()
public boolimplementsInterface(文字列名)
//特定のインターフェースが実装されているかどうかをテストします
パブリック ReflectionExtension getExtension()
パブリック文字列 getExtensionName()
}
?>
ファクトリーモードアプリケーション:
[php]
クラスMoveDataFactory
{
/**
* 説明: シンプルなファクトリーモード、モードに従って異なるインスタンス化されたオブジェクトを選択します
* @return オブジェクト インスタンス
​​*/
パブリック関数 GetMoveClass($classname)
{
$reflectionclass = 新しい ReflectionClass($classname); return $reflectionclass->newInstance(); }
}

http://www.bkjia.com/PHPjc/477934.html

tru​​ehttp://www.bkjia.com/PHPjc/477934.html技術記事リフレクションの理解とは、PHP の実行状態で PHP プログラムの分析を拡張し、クラス、メソッド、属性、パラメーターなど、さらにはコメントに関する詳細情報をエクスポートまたは抽出することを指します。このダイナミックさ…
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

CakePHP プロジェクトの構成

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

CakePHP の日付と時刻

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

CakePHP ファイルのアップロード

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

CakePHP ルーティング

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP について話し合う

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP クイックガイド

See all articles