Maison > Article > développement back-end > Explication détaillée de la façon d'appliquer le code du mécanisme de réflexion php
Cet article présente principalement l'utilisation du mécanisme de réflexion PHP, qui est un concept important dans la programmation PHP. Les amis qui en ont besoin peuvent s'y référer
Cet article décrit l'utilisation du mécanisme de réflexion PHP avec des exemples et des partages. avec tout le monde. Pour la référence de chacun. La méthode spécifique est la suivante :
L'exemple de code de démonstration est le suivant :
<?php class ClassOne { function callClassOne() { print "In Class One"; } } class ClassOneDelegator { private $targets; function construct() { $this->target[] = new ClassOne(); } function call($name, $args) { foreach ($this->target as $obj) { $r = new ReflectionClass($obj); if ($method = $r->getMethod($name)) { if ($method->isPublic() && !$method->isAbstract()) { return $method->invoke($obj, $args); } } } } } $obj = new ClassOneDelegator(); $obj->callClassOne(); ?>
Résultat de sortie :
En classe 1
est visible via la classe proxy ClassOneDelegator Pour remplacer la classe ClassOne pour implémenter ses méthodes.
De même, le code suivant peut également être exécuté :
<?php class ClassOne { function callClassOne() { print "In Class One"; } } class ClassOneDelegator { private $targets; function addObject($obj) { $this->target[] = $obj; } function call($name, $args) { foreach ($this->target as $obj) { $r = new ReflectionClass($obj); if ($method = $r->getMethod($name)) { if ($method->isPublic() && !$method->isAbstract()) { return $method->invoke($obj, $args); } } } } } $obj = new ClassOneDelegator(); $obj->addObject(new ClassOne()); $obj->callClassOne(); ?>
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!