Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Eigenschaften und Verwendung des Schlüsselworts static in PHP

Detaillierte Erläuterung der Eigenschaften und Verwendung des Schlüsselworts static in PHP

黄舟
黄舟Original
2017-07-02 11:51:442404Durchsuche

→statisch: statisch

Verwendung: ist ein Modifikator, der zum Ändern von Mitgliedern (Mitgliedsvariablen, Mitgliedsfunktionen )

class Person
{
    String country = "cn";
}
/* pro Instanz verwendet wird. Erstellen Sie a Personenobjekt, und jedes Objekt hat ein Land

im Heapspeicher. Nach dem Hinzufügen von Statik gibt es nur ein statisches Land im Speicher, das von anderen Objekten direkt aufgerufen werden kann, wodurch Speicherplatz gespart werden kann.

Wenn ein Mitglied statisch geändert wird, kann es nicht nur vom Objekt aufgerufen werden, sondern auch direkt vom Klassennamen. */

Spezielle Inhalte werden mit Objekten gespeichert

Zum Beispiel hat in der Personenklasse jeder Chinese seinen eigenen Namen und die Nationalität ist dieselbe Chinesisch, sodass das Land definiert werden kann als static und name Nicht erforderlich.

→statische Eigenschaften

1. Wird geladen, wenn die Klasse geladen wird

Das heißt: Statische Eigenschaften verschwinden, wenn die Klasse verschwindet, was darauf hinweist, dass ihr

Lebenszyklus vorliegt Am längsten

2. Priorisiert die Objektexistenz

3. Wird von allen Objekten geteilt

Kann direkt über den Klassennamen aufgerufen werden

🎜>

→Der Unterschied zwischen der Instanzvariablen „int age“ (Mitgliedsvariable) und der Klassenvariable „statisch int age“ (statische Mitgliedsvariable)

1 Speicherzweck

Instanzvariable ist vorhanden Heap-Speicher, während das Objekt erstellt wird

Klassenvariablen sind im Methodenbereich vorhanden, während die Klasse geladen wird

2. Lebenszyklus

Instanzvariablen folgen dem Objekt. Verschwinden, wenn die Klasse verschwindet

Klassenvariablen haben den längsten Lebenszyklus und verschwinden, wenn die Klasse verschwindet

→Statische Verwendung

Hinweise

Statische Methoden können nur auf statische Methoden zugreifen Mitglieder

2. Dies kann nicht in statischen Methoden definiert werden

, weil static der Existenz von Objekten vorausgeht, sodass dieses

3 . Die Hauptfunktion ist statisch

→Vor- und Nachteile von statisch

Vorteile: Speichern Sie die Daten des Objekts in einem separaten Bereich, wodurch Platz gespart wird, und es ist nicht erforderlich, sie in jedem zu speichern Objekt Eine Kopie von

kann direkt über den Klassennamen (Person.country) aufgerufen werden.

Nachteile: Der Lebenszyklus ist zu lang.

Der Zugang ist begrenzt. (Es kann nur auf statisch zugegriffen werden)

→ Wann sollte statisch verwendet werden?

Wir müssen von zwei Aspekten ausgehen

Da der Inhalt der statischen Änderung Mitgliedsvariablen und

Mitgliedsmethoden

(Funktion) umfasst

Wann ist Statik zu definieren? Variablen (Klassenvariablen)?

Wenn gemeinsam genutzte Daten in einem Objekt angezeigt werden, werden die Daten statisch geändert.

Die eindeutigen Daten im Objekt müssen als nicht statisch definiert sein und im Heap-Speicher vorhanden sein.

Wann definieren Sie statische Funktionen?

Wenn innerhalb der Funktion nicht auf nicht statische Daten (objektspezifische Daten) zugegriffen wird, kann die Funktion als statisch definiert werden.

→Statische Anwendung

Jede Anwendung hat gemeinsame Funktionen

Diese Funktionen können unabhängig voneinander extrahiert und gepackt werden

zur Wiederverwendung.

Definieren Sie alle Mitgliedsmethoden als statisch und rufen Sie sie direkt mit dem Klassennamen auf.

Es wird einen Standard-

Konstruktor

in einer Klasse geben. Die Berechtigungen dieses Konstruktors stimmen mit der Klasse überein, zu der er gehört

Statischer Codeblock

Format:

statisch

{

Ausführungsanweisungen in statischen Codeblöcken;

}

//Funktionen: Wie die Die Klasse wird geladen und die Ausführung wird nur einmal ausgeführt. Wird zum Initialisieren der Klasse verwendet.

Das folgende Beispiel:

Ladesequenz des statischen Codeblocks-->Konstruktionscodeblock-->Konstruktorfunktion

class StaticCode
{
    static 
    {
        System,out.println("a");
    }
}
Objektinitialisierungsprozess

Person p = neue Person("zhangsan",20);

1. Weil new Person.class verwendet. Daher wird die Datei Person.class zuerst gefunden und in den Speicher geladen.

2. Führen Sie den statischen Codeblock (statischer Codeblock) in der Klasse aus, falls vorhanden, initialisieren Sie die Klasse Person.class

3. Öffnen Sie Speicherplatz im Heap-Speicher, nicht Speicheradresse

4. Erstellen Sie die eindeutigen

-Attribute

im Heap-Speicher und führen Sie die Standardinitialisierung durch

5. Initialisieren Sie die Attribute explizit

6. Initialisieren das Objekt mit dem Konstruktionscodeblock

7. Initialisieren Sie das Objekt mit dem entsprechenden Konstruktor

8. Zahlen Sie die Speicheradresse an die p-Variable im Stapelspeicher

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Eigenschaften und Verwendung des Schlüsselworts static in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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