Maison > développement back-end > tutoriel php > Exemples d'utilisation du mécanisme de réflexion PHP

Exemples d'utilisation du mécanisme de réflexion PHP

高洛峰
Libérer: 2023-03-04 07:42:02
original
868 Les gens l'ont consulté

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();
?>
Copier après la connexion

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();
?>
Copier après la connexion

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 !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal