Detaillierte Erklärung von PHP New Static und New Self

墨辰丷
Freigeben: 2023-03-27 21:42:01
Original
1244 Leute haben es durchsucht

Verwenden Sie self:: oder __CLASS__, um einen statischen Verweis auf die aktuelle Klasse zu erstellen, abhängig von der Klasse, in der die aktuelle Methode definiert ist: Die Verwendung von static:: wird nicht mehr auf die Klasse analysiert, in der die aktuelle Methode definiert ist. sondern wird zur tatsächlichen Laufzeit berechnet. Es kann auch als „statische Bindung“ bezeichnet werden, da es für Aufrufe statischer Methoden verwendet werden kann (aber nicht darauf beschränkt ist).

Mir wurde kürzlich in den Kommentaren eines Videos eine kleine Frage gestellt: Gibt es besondere Überlegungen, wenn ich mich hier für die Verwendung von „Static“ anstelle von „Self“ entscheide? Oder wir können die Frage so ändern:

Was genau ist PHPs neues statisches und neues Selbst?

Tatsächlich sollte es sehr klar sein, wenn wir uns ein Beispiel ansehen:

class Father {

 public static function getSelf() {
  return new self();
 }

 public static function getStatic() {
  return new static();
 }
}

class Son extends Father {}

echo get_class(Son::getSelf()); // Father
echo get_class(Son::getStatic()); // Son
echo get_class(Father::getSelf()); // Father
echo get_class(Father::getStatic()); // Father
Nach dem Login kopieren

Beachten Sie diese Zeile hierget_class(Son::getStatic()); gibt die Son-Klasse zurück, die wie folgt zusammengefasst werden kann:

neues Selbst

1.self gibt die Klasse zurück, in der sich das Schlüsselwort new self in new befindet. Im Beispiel hier:

public static function getSelf() {
  return new self(); // new 关键字在 Father 这里
 }
Nach dem Login kopieren

gibt Father zurück.

neue Statik

2.static Basierend auf dem oben Gesagten ist es etwas intelligenter: static gibt die Klasse zurück, die new static() ausführt, z. B. Son, die Was zurückgegeben wird, ist get_class(Son::getStatic()), Son führt Father aus und was zurückgegeben wird, ist get_class(Father::getStatic())Father

. In Ermangelung einer Vererbung kann davon ausgegangen werden, dass

und new self das gleiche Ergebnis zurückgeben. new static

Tipps: Sie können eine gute IDE verwenden, um Kommentare direkt zu lesen. Zum Beispiel PhpStorm:

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Lernen aller hilfreich sein wird.


Verwandte Empfehlungen:

Analyse des Unterschieds zwischen new self() und new static() in PHP

Die Verwendung von self und dies in PHP

dieses self in PHP Der Unterschied zwischen statisch

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung von PHP New Static und New Self. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!