Heim > Backend-Entwicklung > PHP-Tutorial > Wie erhalte ich den Klassennamen einer erweiterten Klasse aus einem statischen Methodenaufruf in PHP?

Wie erhalte ich den Klassennamen einer erweiterten Klasse aus einem statischen Methodenaufruf in PHP?

Linda Hamilton
Freigeben: 2024-10-31 21:29:29
Original
1012 Leute haben es durchsucht

How to Get the Classname of an Extended Class from a Static Method Call 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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage