Verwenden Sie self:: oder __CLASS__, um eine statische Referenz auf die aktuelle Klasse zu erhalten, abhängig von der Klasse, in der die Methode definiert ist: Bei Verwendung von static:: wird nicht mehr in die Klasse aufgelöst, in der die aktuelle Methode definiert ist, sondern die Berechnung erfolgt erst zur Laufzeit. Es kann auch als „statische Bindung“ bezeichnet werden, da es zum Aufrufen statischer Methoden verwendet werden kann (aber nicht darauf beschränkt ist). Die statische Bindung ist eine in PHP 5.3.0 hinzugefügte Funktion, die zum Verweisen auf statisch aufgerufene Klassen im Vererbungsbereich verwendet wird. Der Unterschied zwischen static und self in PHP-Klassen. Wir sehen oft self und static in der Definition von PHP-Klassen. Beim Ausführen stellen wir oft fest, dass die Ergebnisse nicht unterschiedlich sind, aber es gibt definitiv einen Unterschied. Wenn es keinen Unterschied gibt, warum gibt es dann zwei? 1. Der Unterschied zwischen den beidenStatisch verwendet verzögerte Bindung Daher kann static genau erkennen, ob es sich um einen Aufruf der übergeordneten oder der untergeordneten Klasse handelt. Dies zeigt beispielsweise, dass Static ein kluges Kind ist. Er kann alle seine Verwandten genau erkennen. Selbst ist ein bisschen dumm, er kennt nur die eigenen Eltern 2. Code sieht anders ausDies ist aus dem folgenden Code ersichtlich Selbst bezieht sich auf die Klasse, die ihn definiert, das heißt, er kennt nur seine eigenen Eltern static bezieht sich auf die Klasse, die ihn aufruft, d. h. er kann seine Verwandten erkennen <?php Klasseneltern { geschützter statischer $name = „Ich bin dein Elternteil“; öffentliche statische Funktion who_self() { gibt selbst zurück::$name; } öffentliche statische Funktion who_static() { gibt statisch zurück::$name; } öffentliche statische Funktion get_self() { gib ein neues Selbst zurück(); } öffentliche statische Funktion get_static() { gib ein neues static() zurück; } } Klasse Verwandte erweitert Eltern { geschützter statischer $name = „Ich bin Ihr Verwandter“; } var_dump(kinsfolk::who_self()); //Ich bin dein Elternteilvar_dump(kinsfolk::who_static()); //Ich bin dein Verwandtervar_dump(kinsfolk::get_self()); //Objekt(Eltern)#1 (0) {} var_dump(kinsfolk::get_static()); //Objekt(kinsfolk)#1 (0) {} Einfach ausgedrückt: „Self“ ist die Klasse, in der es geschrieben wird, und diese Klasse wird tatsächlich aufgerufen. static stellt die verwendete Klasse dar, d. h. das static, das Sie in der übergeordneten Klasse geschrieben haben. Anschließend wird es von der Unterklasse überschrieben und die Methode oder das Attribut der Unterklasse wird verwendet ZusammenfassenDies ist das Ende dieses Artikels über den Unterschied zwischen statisch und selbst in der PHP-Klasse. Weitere Informationen zum Unterschied zwischen statisch und selbst in der PHP-Klasse finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Ändern Sie die Startzeit von Grub in Ubuntu
>>: Erklärung der MySQL-Indextypen Normal, Unique und Full Text
Navigation und andere Dinge werden bei der täglic...
Closure-Implementierung privater Variablen Privat...
Inhaltsverzeichnis Was passiert, wenn die Ausführ...
1. Ziehen Sie das MySQL-Image Holen Sie sich das ...
1. Der CSS-Stil löst das Problem der Anzeige von ...
Vorwort Wenn das WeChat-Miniprogrammprojekt das A...
I. Einleitung Die Docker-Technologie erfreut sich...
In MySQL gibt es eine Funktion namens „group_conc...
In höheren Versionen von Tomcat ist der Standardm...
Inhaltsverzeichnis Vorwort Hintergrund Umsetzungs...
Die Rolle von init_connect init_connect wird norm...
Die Isolierung von Prozessadressräumen ist ein be...
Inhaltsverzeichnis 1. Installation 2. Einleitung ...
Ich liebe das Programmieren, es macht mich glückl...
Bei jedem Besuch wird im Browser Cookie generiert...