Heim > Artikel > Backend-Entwicklung > Kann ich den korrekten Klassennamen aus einem statischen Methodenaufruf in einer erweiterten PHP-Klasse abrufen?
Klassennamen aus statischen Aufrufen in erweiterten PHP-Klassen abrufen
Problem:
Ein PHP Es existiert eine Klassenhierarchie mit einer Basisklasse Action und einer erweiterten Klasse MyAction. Eine statische Methode n() in der Action-Klasse gibt ihren Klassennamen zurück. Wenn die Methode jedoch von der erweiterten Klasse MyAction aufgerufen wird, gibt sie „Action“ zurück.
Frage:
Ist es möglich, den richtigen Klassennamen von a abzurufen? statischer Aufruf in der erweiterten Klasse?
Antwort:
Option 1: Nichtstatische Methode
Wenn die Methode ist so geändert, dass sie nicht statisch ist und stattdessen das Schlüsselwort $this verwendet, kann die Funktion get_class($this) verwendet werden, um den Klassennamen der erweiterten Klasse abzurufen.
Option 2: Late Static Bindings ( PHP 5.3 )
Späte statische Bindungen führen die Funktion get_claimed_class() ein, die die Laufzeitzielklasse für statische Methodenaufrufe auflöst. Dies ermöglicht den Abruf des Klassennamens direkt innerhalb der Methode.
Das obige ist der detaillierte Inhalt vonKann ich den korrekten Klassennamen aus einem statischen Methodenaufruf in einer erweiterten PHP-Klasse abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!