1. Fügen Sie statisch vor der Variablen hinzu, um eine statische -Variable (statische Variable) zu bilden.
2. Der Unterschied zwischen statischen Variablen und gewöhnlichen Variablen besteht darin, dass der Umfang nicht statischer globaler Variablen das gesamte Quellprogramm ist. Wenn ein Quellprogramm aus mehreren Quelldateien besteht, handelt es sich um nicht statische globale Variablen sind jeweils in der Quelldatei gültig. Statische globale Variablen beschränken ihren Gültigkeitsbereich, d. h. sie sind nur innerhalb der Quelldatei gültig, in der die Variable definiert ist, und können nicht in anderen Quelldateien desselben Quellprogramms verwendet werden. Da der Umfang statischer globaler Variablen auf eine Quelldatei beschränkt ist und nur von Funktionen in dieser Quelldatei gemeinsam genutzt werden kann, können Fehler in anderen Quelldateien vermieden werden.
3. Der Unterschied zwischen statischen Variablen und gewöhnlichen Variablen:
Der Unterschied zwischen statischen globalen Variablen und gewöhnlichen globalen Variablen: Statische globale Variablen werden nur einmal initialisiert, um zu verhindern, dass sie in anderen Dateieinheiten referenziert werden;
Der Unterschied zwischen statischen lokalen Variablen und gewöhnlichen lokalen Variablen: Statische lokale Variablen werden nur einmal initialisiert und das nächste Mal basiert auf dem vorherigen Ergebniswert
Der Unterschied zwischen statischen Funktionen und gewöhnlichen Funktionen: Es gibt Es gibt nur eine Kopie der statischen Funktion im Speicher, und die normale Funktion wird jedes Mal initialisiert. Eine Kopie wird über alle Aufrufe hinweg beibehalten.
4. Fügen Sie das Schlüsselwort static vor der globalen Variablen hinzu, und die globale Variable wird als globale statische Variable definiert.
1) Speicherort: statischer Speicherbereich (statischer Speicherbereich existiert während der gesamten Programmausführung)
2) Initialisierung: Nicht initialisierte globale statische Variablen werden vom Programm automatisch auf 0 initialisiert (automatisches Objekt). Der Wert ist beliebig es sei denn, es wird explizit initialisiert)
3) Geltungsbereich: Globale statische Variablen sind außerhalb der Datei, in der sie deklariert sind, nicht sichtbar. Genau vom Definitionspunkt bis zum Ende der Datei.
5. Vorteile statischer Variablen: Auf
wird von anderen Dateien nicht zugegriffen. Sie können
Variablen mit demselben Namen in anderen Dateien ändern.
Speicherort: statischer Speicherbereich
Initialisierung: Nicht initialisierte globale statische Variablen werden vom Programm automatisch auf 0 initialisiert (der Wert eines automatischen Objekts ist beliebig, sofern er nicht explizit initialisiert wird)
Bereich: Der Bereich ist immer noch ein lokaler Bereich. Wenn die Funktion oder der Anweisungsblock, der ihn definiert, endet, endet auch der Bereich.
Hinweis: Wenn statische Variablen zum Ändern lokaler Variablen verwendet werden, ändert sich der Speicherort lokaler Variablen vom ursprünglichen Stapel in den statischen Speicherbereich. Die lokale statische Variable wird jedoch nach Verlassen des Gültigkeitsbereichs nicht zerstört, sondern bleibt bis zum Ende des Programms noch im Speicher, wir können jedoch nicht mehr darauf zugreifen.
Wenn Static zum Ändern einer globalen Variablen verwendet wird, ändert sich der Gültigkeitsbereich der globalen Variablen (sie ist außerhalb der Datei, in der sie deklariert ist, nicht sichtbar), aber ihr Speicherort ändert sich nicht, sie befindet sich immer noch in der Statik Lagerfläche.
Statisch bedeutet, ein statisches Objekt oder eine statische Variable zu definieren. Nachdem wir die relevanten Beispiele in diesem Artikel gelesen haben, werden wir die Eigenschaften der durch statisch definierten Variablen oder Klassenmethoden kennen.
1. Erstellen Sie ein Objekt$object = new Class() und rufen Sie dann mit „->“ Folgendes auf: $object->attribute/function, vorausgesetzt, dass auf die Variable/Methode zugegriffen werden kann .
2. Rufen Sie Klassenmethoden/-variablen direkt auf: class::attribute/function, egal ob statisch oder nicht statisch. Es gibt jedoch Voraussetzungen:
A. Wenn es sich um eine Variable handelt, muss auf die Variable zugegriffen werden können.
B. Wenn es sich um eine Methode handelt, muss sie nicht nur zugänglich sein, sondern auch Folgendes erfüllen:
b1) Wenn es sich um eine statische Methode handelt, gibt es keine besonderen Bedingungen Da es sich um eine nicht statische Methode handelt, muss sie geändert werden, wenn sie nicht in der Methode $ verwendet wird. Dies bedeutet, dass nicht statische Variablen/Methoden nicht aufgerufen werden. Natürlich gibt es kein Problem beim Aufruf statischer Variablen/Methoden.
Dann werfen wir einen Blick auf den Unterschied zwischen der Verwendung von $object->… und der Verwendung von class::…:
1. Um $object->… zu verwenden, müssen Sie den
Konstruktor um ein Objekt zu erstellen; 2. Verwenden Sie class::..., um statische Methoden/Variablen aufzurufen, ohne den Konstruktor auszuführen, um das Objekt zu erstellen 3. Verwenden Sie class::..., um nicht- Statische Methoden/Variablen, und es ist nicht erforderlich, den Konstruktor auszuführen, um das Objektobjekt zu erstellen.
Dann kommt das Seltsame ans Licht: Da 2 und 3 gleich sind, welchen Sinn hat die Existenz statischer Methoden/Variablen?
Statisch statisch
Die Deklaration eines Klassenmitglieds oder einer Methode als statisch ermöglicht den direkten Zugriff ohne Instanziierung der Klasse. Auf statische Mitglieder (außer statische Methoden) kann nicht über ein Objekt zugegriffen werden. Statische Mitglieder gehören zur Klasse und keiner Objektinstanz, Objektinstanzen der Klasse können jedoch gemeinsam genutzt werden.
Das obige ist der detaillierte Inhalt vonPHP: Analyse des Unterschieds zwischen statischen statischen Variablen und gewöhnlichen Variablen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!