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

Detaillierte Erläuterung der Anwendung des PHP-Reflexionsmechanismuscodes

伊谢尔伦
伊谢尔伦Original
2017-06-30 10:37:111030Durchsuche

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();
?>

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();
?>

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!

Stellungnahme:
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