Reflection est une API permettant de manipuler des méta-modèles dans le paradigme Orienté objet . Elle est très puissante et peut nous aider à créer des applications complexes et évolutives. Ses utilisations incluent : le chargement automatique de plug-ins, la génération automatique de documents et peut même être utilisé pour étendre le langage PHP. L'API de réflexion PHP se compose de plusieurs classes qui nous aident à accéder aux métadonnées du programme ou à interagir avec les annotations associées. Avec l'aide de la réflexion, nous pouvons obtenir les méthodes implémentées par la classe, créer une instance de la classe (différente de la création avec new), appeler une méthode (également différente de l'appel régulier), transmettre des paramètres, appeler dynamiquement le static de la méthode de classe.
L'API Reflection est l'extension de la technologie oop intégrée à PHP, comprenant certaines classes, exceptions et interfaces utilisées ensemble, elles peuvent être utilisées pour nous aider à analyser d'autres classes, interfaces, méthodes, propriétés, méthodes et extensions. Ces extensions oop sont appelées réflexion et se trouvent dans le répertoire code source php/ext/reflection. Vous pouvez utiliser l'API de réflexion pour introspecter l'API de réflexion elle-même (c'est peut-être le sens original de réflexion, "voir" vous-même) :
Cet article présente principalement l'utilisation de la réflexion du PHP classe, avec des exemples.Il a une certaine valeur de référence pour les opérations courantes de la classe de réflexion.Les amis dans le besoin peuvent se référer à
Les exemples de cet article décrivent l'utilisation de la réflexion dans la classe PHP. Partagez-le avec tout le monde pour votre référence. La méthode d'implémentation spécifique est la suivante :
Cet exemple implémente l'obtention de la classe correspondante pour chaque canal pour effectuer l'opération correspondante. Les détails sont les suivants :
Le code est le suivant :
foreach($this->chs as $ch) { $className = $this->chsMap[$ch]; if($className) { // 如果是合法的类名 // 获取反射类 $class = new ReflectionClass($className); // 获取类的方法 $recd = $class->getmethod('exeRecd'); // 生成类的实例 $instance = $class->newInstance($this->qq, $this->ip); // 执行方法 $result[$ch] = $recd->invoke($instance); } }
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!