Der Unterschied zwischen dieser Selbststatik in PHP
Dieser Artikel stellt hauptsächlich den Unterschied zwischen dieser Selbststatik in PHP vor, der einen gewissen Referenzwert hat. Jetzt kann ich ihn mit allen teilen, die ihn brauchen.
Nachdruck von: https: / /blog.csdn.net/mrzhouxiaofei/article/details/78648079
Einführung
Ich habe kürzlich einen Software-Engineering-Kurs entworfen und bin auf ein Problem gestoßen. Ich habe den Laravel-Quellcode ausgegraben und erneut gesucht. Dabei stellte ich fest, dass das Problem auf mangelndes tiefes Verständnis der Selbststatik zurückzuführen war. Deshalb habe ich es aufgezeichnet, um zu vermeiden, dass derselbe Fehler noch einmal gemacht wird.
Text
dieses
das ist leichter zu verstehen. Es zeigt auf das aktuelle Objekt und wird verwendet, um auf die nicht statischen Variablen und nicht statischen Methoden des aktuellen Objekts zuzugreifen Objekt. Es bezieht sich auf das Objekt. ;
<?phpclass Person { public $name; public function getName() { echo $this->name; } }$p = new Person();$p2 = new Person();$p->name = "小红";$p2->name = "小明";$p->getName(); // 小红$p2->getName(); // 小明
Im obigen Beispiel sind zwei Objekte neu und die Namensattribute der Objekte werden jeweils in getName() verwendet, um auf den Namen zuzugreifen Attribut des aktuellen Objekts, daher werden jeweils die Namenswerte ausgegeben. Daher verweist dies auf das aktuelle Objekt und nicht auf andere Objekte oder Klassen.
self
self verweist auf die Klasse selbst und nicht auf ein instanziiertes Objekt. Es wird im Allgemeinen für den Zugriff auf statische Variablen und statische Methoden in der Klasse verwendet 🎜>
<?phpclass Person { public static $name = "小红"; public static function getName() { echo self::$name; } }$p = new Person();$p2 = new Person();$p::getName(); // 小红$p2::getName(); // 小红$p::$name = "小明";$p::getName(); // 小明$p2::getName(); // 小明
späte statische Bindung bezeichnet wird .
Wie Sie dem obigen Beispiel entnehmen können, ist self in Klasse A geschrieben und zeigt beim Aufruf auf Klasse A. static ist ebenfalls in Klasse A geschrieben, verwendet jedoch ein Objekt der Klasse B , eine Unterklasse der Klasse A. Beim Aufruf zeigt es auf Klasse B. Bei Verwendung bestimmt static, auf welche Klasse es zeigt. Dies ist eine<?phpclass A { public function say() { echo "Hello"; } public function saySelf() { self::say(); } public function sayStatic() { static::say(); } }class B extends A { public function say() { echo "World"; } }$b = new B();$b->say(); // World$b->saySelf(); // Hello$b->sayStatic(); // World
. Späte statische Bindung
Zusammenfassung
dies zeigt auf das aktuelle Objekt, das für den Zugriff auf die nicht statischen Variablen und nicht statischen Methoden des aktuellen Objekts verwendet wird;
self zeigt auf die Klasse und wird im Allgemeinen für den Zugriff auf statische Variablen und statische Methoden der aktuellen Klasse verwendet. Die Klasse, auf die es zeigt, wurde vor der Ausführung bestimmt. static zeigt auf die Klasse und wird im Allgemeinen für den Zugriff auf statische Variablen und statische Methoden verwendet die aktuelle Klasse,
ist jedoch nicht auf
beschränkt. Ein statischer Aufruf bestimmt, auf welche Klasse zur Laufzeit verwiesen wird. Verwandte Empfehlungen:
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen dieser Selbststatik in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Der Grund für den Fehler ist NameResolutionError(self.host,self,e)frome, ein Ausnahmetyp in der urllib3-Bibliothek. Der Grund für diesen Fehler ist, dass die DNS-Auflösung fehlgeschlagen ist, d. h. der Hostname oder die IP-Adresse Der Lösungsversuch konnte nicht gefunden werden. Dies kann daran liegen, dass die eingegebene URL-Adresse falsch ist oder der DNS-Server vorübergehend nicht verfügbar ist. So beheben Sie diesen Fehler Es gibt möglicherweise mehrere Möglichkeiten, diesen Fehler zu beheben: Überprüfen Sie, ob die eingegebene URL-Adresse korrekt ist und stellen Sie sicher, dass sie zugänglich ist. Stellen Sie sicher, dass der DNS-Server verfügbar ist. Sie können es mit dem Befehl „ping“ in der Befehlszeile versuchen Um zu testen, ob der DNS-Server verfügbar ist, versuchen Sie, über die IP-Adresse statt über den Hostnamen auf die Website zuzugreifen, wenn Sie sich hinter einem Proxy befinden

Bevor wir die Verwendung von self in Python vorstellen, stellen wir zunächst die Klassen und Instanzen in Python vor. Wir wissen, dass Klassen und Instanzen abstrakte Vorlagen sein können vertreten durch eine Studentenklasse. Instanzen sind spezifische „Objekte“, die auf der Grundlage von Klassen erstellt werden. Jedes Objekt erbt dieselben Methoden von der Klasse, seine Daten können jedoch unterschiedlich sein. 1. Nehmen Sie die Klasse Student als Beispiel. In Python ist die Klasse wie folgt definiert: classStudent(object):pass(Object) gibt an, von welcher Klasse die Klasse erbt

Die Rolle und Verwendung von Statik in der C-Sprache: 1. Variablenbereich; Wenn das Schlüsselwort static vor einer Variablen steht, ist der Gültigkeitsbereich der Variablen auf die Datei beschränkt, in der sie deklariert ist. Mit anderen Worten, die Variable ist ein „Gültigkeitsbereich auf Dateiebene“, was sehr nützlich ist, um das „ zu verhindern. Problem der doppelten Definition von Variablen; 2. Lebenszyklus, statische Variablen werden einmal initialisiert, wenn die Ausführung des Programms beginnt, und zerstört, wenn das Programm endet usw.

1. static Bitte schauen Sie sich zuerst das folgende Programm an: publicclassHello{publicstaticvoidmain(String[]args){//(1)System.out.println("Hello, world!");//(2)}} Habe das gesehen Segmentprogramme sind den meisten Leuten bekannt, die Java studiert haben. Auch wenn Sie kein Java, aber andere Hochsprachen wie C gelernt haben, sollten Sie die Bedeutung dieses Codes verstehen können. Es gibt lediglich „Hallo Welt“ aus und hat keine andere Verwendung. Es zeigt jedoch den Hauptzweck des statischen Schlüsselworts.

Praktische Anwendungsszenarien und Verwendungsfähigkeiten des Schlüsselworts static in der C-Sprache 1. Übersicht static ist ein Schlüsselwort in der C-Sprache, das zum Ändern von Variablen und Funktionen verwendet wird. Seine Funktion besteht darin, seinen Lebenszyklus und seine Sichtbarkeit während der Programmausführung zu ändern und Variablen und Funktionen statisch zu machen. In diesem Artikel werden die tatsächlichen Anwendungsszenarien und Verwendungstechniken des statischen Schlüsselworts vorgestellt und anhand spezifischer Codebeispiele veranschaulicht. 2. Statische Variablen verlängern den Lebenszyklus von Variablen. Die Verwendung des Schlüsselworts static zum Ändern lokaler Variablen kann deren Lebenszyklus verlängern.

Die Funktionen von Static: 1. Methoden; 3. Andere Verwendungen; Optimierung des Speicherlayouts; 11. Vermeiden Sie wiederholte Initialisierung. 12. Verwendung in Funktionen. Detaillierte Einführung: 1. Variablen, statische Variablen. Wenn eine Variable als statisch deklariert wird, gehört sie zur Klassenebene und nicht zur Instanzebene. Dies bedeutet, dass unabhängig von der Anzahl der erstellten Objekte nur eine statische Variable und alle Objekte vorhanden sind Teilen Sie diese statischen Variablen usw.

Ein Kollege blieb aufgrund eines Fehlers stecken, auf den dadurch hingewiesen wurde. Dieses Zeigeproblem führte dazu, dass eine Pfeilfunktion verwendet wurde, was dazu führte, dass die entsprechenden Requisiten nicht abgerufen werden konnten. Er wusste es nicht, als ich es ihm vorstellte, und dann habe ich mir bewusst die Front-End-Kommunikationsgruppe angesehen. Bisher verstehen es mindestens 70 % der Front-End-Programmierer nicht Sie diesen Link Wenn alles unklar ist Wenn Sie es noch nicht gelernt haben, geben Sie mir bitte eine große Klappe.

Modifikator abstract (abstract) 1. Abstract kann eine Klasse ändern (1) Die durch abstract geänderte Klasse wird als abstrakte Klasse bezeichnet (2) Syntax: abstractclass-Klassenname {} (3) Funktionen: Abstrakte Klassen können keine Objekte separat erstellen, sie können jedoch (4) Abstrakte Klassen können Mitgliedsvariablen und Mitgliedsmethoden definieren. Wenn sie zum Erstellen von Unterklassenobjekten verwendet werden, erstellt jvm standardmäßig ein übergeordnetes Klassenobjekt apply Wird angewendet, wenn JVM ein übergeordnetes Klassenobjekt erstellt. 2. Abstrakt kann Methoden ändern (1) Die durch asbtract geänderte Methode wird als abstrakte Methode bezeichnet (2) Syntax: Zugriffsmodifikator abstrakter Rückgabewert
