Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Erläuterung der Anwendung des PHP-Reflexionsmechanismuscodes

Detaillierte Erläuterung der Anwendung des PHP-Reflexionsmechanismuscodes

伊谢尔伦
Freigeben: 2023-03-12 07:30:02
Original
1055 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Verwendung des PHP-Reflexionsmechanismus vorgestellt, ein wichtiges Konzept in der PHP-Programmierung. Freunde, die es benötigen, können sich darauf beziehen.

Dieser Artikel beschreibt die Verwendung des PHP-Reflexionsmechanismus anhand von Beispielen und Freigaben es mit allen. Als Referenz für alle. Die spezifische Methode lautet wie folgt:

Der Demonstrationsbeispielcode lautet wie folgt:

<?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();
?>
Nach dem Login kopieren

Ausgabeergebnis:

In Klasse Eins

ist sichtbar durch die Proxy-Klasse ClassOneDelegator Um die ClassOne-Klasse zu ersetzen, um ihre Methoden zu implementieren.

Ähnlich kann auch der folgende Code ausgeführt werden:

<?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();
?>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Anwendung des PHP-Reflexionsmechanismuscodes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage