Maison >développement back-end >tutoriel php >Explication détaillée de l'utilisation de la fonction de réflexion orientée objet PHP

Explication détaillée de l'utilisation de la fonction de réflexion orientée objet PHP

黄舟
黄舟original
2017-03-30 09:10:171108parcourir

Cet article présente principalement la fonction de réflexion et l'utilisation de phporienté objet, et analyse brièvement le concept et l'utilisation spécifique de la réflexion orientée objet php5 sous forme d'exemples. Les amis qui en ont besoin peuvent Pour référence,

Les exemples de cet article décrivent la fonction de réflexion et l'utilisation de PHP orienté objet. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Compréhension personnelle de la définition de la réflexion :

Tout d'abord, nous devons parler de ce qu'est la réflexion. Pour un novice, le concept de réflexion donne souvent le sentiment qu'il ne le comprend pas et qu'il ne sait pas comment le faire fonctionner.

La réflexion fait référence à : fait référence à l'extension de l'analyse du programme PHP dans l'état d'exécution de PHP , et à l'exportation ou à l'extraction d'informations sur les classes, les méthodes, et des attributs , paramètres, etc. détails, comprenant également des annotations . Cette fonction d'obtention dynamique d'informations et d'appel dynamique de méthodes objet est appelée réflexionAPI. Reflection est une API permettant de manipuler des métamodèles dans le paradigme orienté objet. Elle est très puissante et peut nous aider à créer des applications complexes et évolutives. (Remarque : Ce type d'opération inverse en php n'est en fait entièrement disponible qu'après PHP5 )

Je vais l'illustrer avec un exemple ci-dessous :

class test{
     private   $A;
     public   $B;
     protected  $C;
     public function test(){
       return "this is a test function";
     }
}
//实例化一个反射类ReflectionClass
$obj=new ReflectionClass('test');
echo $obj."<br>";
//实例化test类,并访问其test方法
$obj2=$obj->newInstance();
echo $obj2->test();

Résultats renvoyés par l'instance personnelle :


/** 
* xxx.php 
* ============================================== 
* Copy right 2012-2015 
* ---------------------------------------------- 
* This is not a free software, without any authorization is not allowed to use and spread. 
* ============================================== 
* @Author:YeXianMing 
* @Email:LangWaiShiGe@hotmail.com 
* @Version:zend studio10.6.2 php5.4.38 apache2.2 
*/ 
Class [ class test ] 
{ @@ D:\www\MyProjecttest\index5.php 13-21 - Constants [0] { } 
- Static properties [0] { } 
- Static methods [0] { } 
- Properties [3] 
{ 
Property [ private $A ] 
Property [ public $B ] 
Property [ protected $C ] 
} 
- Methods [1] { 
Method [ 
public method test 
] 
{ 
@@ D:\www\MyProjecttest\index5.php 18 - 20 
} 
} 
}
this is a test function

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn