Maison > Article > développement back-end > Exemples d'utilisation du mécanisme de réflexion PHP
L'exemple de cet article décrit l'utilisation du mécanisme de réflexion PHP et est partagé avec tout le monde pour votre référence. 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(); ?>
J'espère que cet article sera utile à la conception de la programmation PHP de chacun.
Pour plus d'articles liés aux exemples d'utilisation du mécanisme de réflexion PHP, veuillez faire attention au site Web PHP chinois !