Heim > Artikel > Backend-Entwicklung > Wie erhalte ich den Klassennamen einer erweiterten Klasse aus einem statischen Methodenaufruf in PHP?
Abrufen des Klassennamens aus einem statischen Aufruf in einer erweiterten PHP-Klasse
Das Erweitern von Klassen in PHP ermöglicht die Erstellung von Unterklassen, die die Eigenschaften erben und Methoden ihrer Elternklasse. Statische Methoden in der übergeordneten Klasse können jedoch nicht direkt auf den Klassennamen der erweiterten Klasse zugreifen.
Problem:
Erhalten Sie den Klassennamen der erweiterten Klasse, wenn Sie eine statische Methode aufrufen aus dieser Klasse.
Zum Beispiel:
<code class="php">class Action { function n() {/* something */} } class MyAction extends Action {/* some methods here */}</code>
Der Aufruf von MyAction::n() sollte „MyAction“ zurückgeben. Allerdings gibt __CLASS__ in der Action-Klasse nur „Action“ zurück.
Späte statische Bindungen (PHP 5.3):
Seit PHP 5.3 ermöglichen späte statische Bindungen das Auflösen des Ziels Klasse für statische Methodenaufrufe zur Laufzeit. Verwenden Sie get_claimed_class(), um den Klassennamen abzurufen:
<code class="php">class Action { public static function n() { return get_called_class(); } } class MyAction extends Action { } echo MyAction::n(); //displays MyAction</code>
Alternativ:
Wenn die statische Methode nicht statisch ist, verwenden Sie get_class($this) in der Methode zu Erhalten Sie den Klassennamen.
Das obige ist der detaillierte Inhalt vonWie erhalte ich den Klassennamen einer erweiterten Klasse aus einem statischen Methodenaufruf in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!