Heim Backend-Entwicklung PHP-Tutorial Beispiele für die Verwendung des PHP-Reflektionsmechanismus

Beispiele für die Verwendung des PHP-Reflektionsmechanismus

Dec 23, 2016 pm 12:53 PM
反射机制

Die Beispiele in diesem Artikel beschreiben die Verwendung des PHP-Reflexionsmechanismus und werden Ihnen als Referenz zur Verfügung gestellt. 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.

In ähnlicher Weise 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

Ich hoffe, dass dieser Artikel für das PHP-Programmierdesign aller hilfreich sein wird.

Weitere Artikel zu Beispielen für die Verwendung des PHP-Reflektionsmechanismus finden Sie auf der chinesischen PHP-Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Welche Alternativen gibt es zum Reflexionsmechanismus von Java? Welche Alternativen gibt es zum Reflexionsmechanismus von Java? Apr 15, 2024 pm 02:18 PM

Zu den Alternativen zum Java-Reflexionsmechanismus gehören: 1. Annotationsverarbeitung: Verwenden Sie Annotationen, um Metadaten hinzuzufügen und zur Kompilierungszeit Code zu generieren, um die Informationen zu verarbeiten. 2. Metaprogrammierung: Generieren und ändern Sie Code zur Laufzeit und können Sie dynamisch Klassen erstellen und Informationen abrufen. 3. Proxy: Erstellen Sie eine neue Klasse mit derselben Schnittstelle wie eine vorhandene Klasse, die ihr Verhalten zur Laufzeit verbessern oder ändern kann.

Wie verändert der Java-Reflexionsmechanismus das Verhalten einer Klasse? Wie verändert der Java-Reflexionsmechanismus das Verhalten einer Klasse? May 03, 2024 pm 06:15 PM

Der Java-Reflexionsmechanismus ermöglicht es Programmen, das Verhalten von Klassen dynamisch zu ändern, ohne den Quellcode zu ändern. Durch Betreiben des Class-Objekts können Sie über newInstance() Instanzen erstellen, private Feldwerte ändern, private Methoden aufrufen usw. Reflection sollte jedoch mit Vorsicht verwendet werden, da es zu unerwartetem Verhalten und Sicherheitsproblemen führen kann und einen Leistungsaufwand mit sich bringt.

Wie wird die NoSuchFieldException-Ausnahme in Java generiert? Wie wird die NoSuchFieldException-Ausnahme in Java generiert? Jun 25, 2023 pm 04:30 PM

Java ist eine der am weitesten verbreiteten Programmiersprachen der Welt und die Ausnahmebehandlung ist ein sehr wichtiger Teil des Java-Programmierungsprozesses. In diesem Artikel wird die NoSuchFieldException-Ausnahme in Java vorgestellt, wie sie generiert wird und wie mit ihr umgegangen wird. 1. Definition von NoSuchFieldException NoSuchFieldException ist eine geprüfte Ausnahme in Java, was bedeutet, dass sie ausgelöst wird, wenn das angegebene Feld nicht gefunden wird.

Anwendung des Java-Reflexionsmechanismus im Spring-Framework? Anwendung des Java-Reflexionsmechanismus im Spring-Framework? Apr 15, 2024 pm 02:03 PM

Der Java-Reflektionsmechanismus wird im Spring-Framework häufig für die folgenden Aspekte verwendet: Abhängigkeitsinjektion: Instanziieren von Beans und Einfügen von Abhängigkeiten durch Reflektion. Typkonvertierung: Anforderungsparameter in Methodenparametertypen konvertieren. Persistenz-Framework-Integration: Zuordnung von Entitätsklassen und Datenbanktabellen. AspectJ-Unterstützung: Methodenaufrufe abfangen und Codeverhalten verbessern. Dynamischer Proxy: Erstellen Sie Proxy-Objekte, um das Verhalten des Originalobjekts zu verbessern.

Anwendung des Reflexionsmechanismus in der Java-Parallelität? Anwendung des Reflexionsmechanismus in der Java-Parallelität? Apr 15, 2024 pm 09:03 PM

Antwort: Der Reflexionsmechanismus ermöglicht es Java-Programmen, Klassen und Objekte zur Laufzeit über die Reflexions-API zu überprüfen und zu ändern, was zur Implementierung flexibler Parallelitätsmechanismen in der Java-Parallelität verwendet werden kann. Anwendung: Threads dynamisch erstellen. Thread-Priorität dynamisch ändern. Abhängigkeiten einfügen.

Anwendung des Java-Reflexionsmechanismus im Cloud Computing? Anwendung des Java-Reflexionsmechanismus im Cloud Computing? Apr 16, 2024 am 09:18 AM

Java-Reflektion wird im Cloud Computing häufig verwendet, darunter: dynamische Diensterkennung (Abrufen von Dienstklassen aus der Dienstregistrierung und Aufrufen von Methoden), automatische Erweiterung und Kontraktion (Überwachen von Systemindikatoren und Anpassen der Anzahl von Dienstinstanzen), dynamisches Laden von Konfigurationen und Code Generierung und benutzerdefinierte Ausnahmebehandlung. Durch Reflexion können sich Programme leicht an die dynamischen und verteilten Eigenschaften von Cloud-Computing-Umgebungen anpassen und automatisierte Aufgaben wie die automatisierte Bereitstellung implementieren.

Reflexionsmechanismus in PHP Reflexionsmechanismus in PHP Aug 31, 2023 pm 01:57 PM

Reflexion wird normalerweise als die Fähigkeit eines Programms definiert, sich selbst zu untersuchen und seine Logik während der Ausführung zu ändern. Weniger technisch ausgedrückt bedeutet Reflexion, dass ein Objekt aufgefordert wird, Ihnen seine Eigenschaften und Methoden mitzuteilen, und dass diese Mitglieder (sogar private Mitglieder) geändert werden. In diesem Kurs werden wir uns genauer ansehen, wie dies erreicht werden kann und wann es nützlich sein könnte. Ein wenig Geschichte Zu Beginn des Programmierzeitalters entstand die Assemblersprache. In Assembler geschriebene Programme befinden sich in physischen Registern im Computer. Seine Zusammensetzung, Methoden und Werte können jederzeit durch Auslesen der Register überprüft werden. Darüber hinaus können Sie Ihr Programm ändern, indem Sie einfach diese Register während der Ausführung ändern. Es erfordert einige tiefgreifende Kenntnisse des laufenden Programms, hat aber einen reflektierenden Charakter. Wie bei jedem coolen Spielzeug

Erweiterte PHP-Funktionen: Verstehen Sie die Kraft des Reflexionsmechanismus Erweiterte PHP-Funktionen: Verstehen Sie die Kraft des Reflexionsmechanismus Jun 01, 2024 pm 07:40 PM

PHP-Reflexion ist ein leistungsstarker Mechanismus zum Abrufen von Laufzeitcode-Strukturinformationen. Er ermöglicht Ihnen: 2. die Struktur von Klassen und Methoden zu überprüfen; 3. Instanzen neuer Klassen zu erstellen; Erhalten Sie Informationen zu Methodenparametern. 6. Ändern Sie Attributwerte. 7. Rufen Sie private Methoden auf. Durch Reflexion können Sie die Skalierbarkeit und Flexibilität Ihres Codes verbessern und leistungsfähigere PHP-Anwendungen entwickeln.

See all articles