rufen den klassennamen aus statischen rufen in erweiterter PHP class
in der Welt von PHP notwendig, um den Klassennamen aus einem statischen Funktionsanruf zu bestimmen, insbesondere in der Arbeit mit erweiterten Klassen. Betrachten Sie das folgende Szenario:
class Action {
function n() {/* some implementation */}
}
class MyAction extends Action {/* further implementation */}
in dieser Situation, nennen Sie myAction :: n (); Sollte "MyAction" als Klassenname zurückgeben. Die Variable __class__ gibt jedoch nur den Namen der Elternklassen zurück ("Aktion").
Spätstatische Bindungen (Php 5.3):
php 5.3 eingeführte statische Bindungen, die die Auflösung der Zielklasse nach Laufzeit ermöglichen. Diese Funktion ermöglicht es, die aufgerufene Klasse mit der Funktion get_called_class () zu bestimmen:
class Action {
public static function n() {
return get_called_class();
}
}
class MyAction extends Action {
}
echo MyAction::n(); // Output: MyAction
Alternative Approach (Pre-PHP 5.3):
Prior to PHP 5.3, an alternative solution relies on using a non-static method and the get_class() function:
class Action {
public function n(){
return get_class($this);
}
}
class MyAction extends Action {
}
$foo = new MyAction;
echo $foo->n(); // Output: MyAction
Denken Sie daran, dieser Ansatz funktioniert nur für nicht statische Methoden, da die Funktion get_class () eine Instanz der Klasse als Argument nimmt.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3