Wie kann eine Klasse in PHP ihren eigenen Namen referenzieren?
Wie würde zum Beispiel die Methode aussehen?
%Vor% Ich sehe, dass jeder get_class($this)
sagt. Aber das ist nicht richtig. Das würde funktionieren, wenn ich eine Instanz von Dog erstellen würde. Ich frage nach einer Methode der Hundeklasse selbst aufzurufen. Wenn Dog
% Mammal
erweitert, gibt ein Aufruf von get_class($this)
innerhalb der Klasse Dog
'Mammal.' Zurück.
Mit anderen Worten:
Zum Beispiel:
%Vor% Yacobys Vorschlag von get_called_class()
war korrekt. So funktioniert es in dem Beispiel, das ich gab.
Drei Optionen, get_called_class()
, get_class()
oder die magische Konstante __CLASS__
Von diesen drei get_called_class()
ist diejenige, die Sie verwenden möchten, wenn Sie mit einem statische Funktion, obwohl es leider eine PHP-Version von mindestens 5.3.0 erfordert.
Wenn Sie die Klasse in eine statische Funktion bringen müssen, wenn die Klasse abgeleitet werden kann, ist sie etwas anders, da self
in den Klassennamen aufgelöst wird, in dem sie platziert wurde (siehe Selbstbeschränkungen :: ). Um dieses Problem zu umgehen, müssen Sie die Funktion aus PHP 5.3.0 get_called_class()
.
Wenn Sie PHP 5.3.0 oder höher nicht verwenden können, stellen Sie möglicherweise fest, dass Sie die Funktion nicht statisch machen können und dennoch die gewünschten Ergebnisse erzielen.
get_class()
liefert den Namen der tatsächlichen Klasse, die das Objekt ist, unabhängig davon, wo der Funktionsaufruf ist.
get_class
kann auch ohne Parameter verwendet werden, was auf den ersten Blick darauf hindeutet, dass es mit statischen Funktionen funktionieren würde (da $this
nicht übergeben werden muss), aber wenn es ohne Parameter verwendet wird, funktioniert es in genauso wie __CLASS__
__CLASS__
wird immer auf den Namen der Klasse erweitert, in der __CLASS__
aufgelöst wurde, auch wenn die Vererbung berücksichtigt wird.
Nun, da ist get_class ($ Object)
Dann gibt es __CLASS__, wenn es in einer Klasse verwendet wird
Oder Sie könnten eine Methode erstellen, die __CLASS __
zurückgibtTags und Links php