Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der statischen PHP-Mitgliedsvariablen und der Initialisierung statischer Variablen

Detaillierte Erläuterung der statischen PHP-Mitgliedsvariablen und der Initialisierung statischer Variablen

伊谢尔伦
伊谢尔伦Original
2017-06-30 11:33:112168Durchsuche

statische -Mitglieder: Mitglieder in der statischen Klasse fügen den Modifikator statisch hinzu, der ein statisches Mitglied ist kann direkt auf dieses statische Mitglied zugreifen Klassenname + statischer Mitgliedsname, nicht statische Mitglieder müssen instanziiert werden, bevor Speicher zugewiesen wird, sodass statische Mitglieder nicht auf nicht statische Mitglieder zugreifen können Speicher, sie sind keine statischen Mitglieder, die direkt auf statische Mitglieder in der Klasse zugreifen können.

1. Statische globale Variablen

Definition: Vor der globalen Variablen hinzufügen das Schlüsselwort static Die Variable ist als statische globale Variable definiert.

Funktionen:

A. Diese Variable reserviert Speicher im globalen Datenbereich.

B. Initialisierung: Wenn sie nicht explizit initialisiert wird, wird sie implizit auf 0 initialisiert (automatische Variablen sind zufällig, sofern sie nicht explizit initialisiert werden).

C. Die Zugriffsvariable ist genau genommen nur in der Quelldatei sichtbar, sie sollte am Definitionspunkt beginnen und in dieser Datei enden.

2. Statische lokale Variablen

Eigenschaften:

Diese Variable ist global Daten Speicher zuweisen.

B. Initialisierung: Wenn es nicht explizit initialisiert wird, wird es implizit auf 0 initialisiert, und nachfolgende -Funktionsaufrufe werden nicht mehr initialisiert.

C. Es bleibt bis zum Ende des Programms immer im globalen Datenbereich. Sein Gültigkeitsbereich ist jedoch ein lokaler Gültigkeitsbereich. Wenn die Funktion oder der Anweisungsblock, der ihn definiert, endet, endet sein Gültigkeitsbereich.

Statische Datenelemente folgen denselben öffentlichen, geschützten und privaten Zugriffsregeln wie gewöhnliche Datenelemente

Da statische Datenelemente Speicher im globalen Datenbereich zuweisen, zugehörige Objekte Diese KlasseGeteilt, daher gehört sie nicht zu einem bestimmten Klassenobjekt, das heißt, wenn keine Instanz der Klasse generiert wird, können wir sie mit statischen Daten betreiben Member-Initialisierung und allgemeine Daten Die Member-Initialisierung ist unterschiedlich. Das Format der Initialisierung statischer Datenelemente lautet:

Datentyp::=

Statische Datenelemente einer Klasse haben zwei Zugriffsformen:

. oder : : <Name des statischen Datenelements>

Wenn die Zugriffsrechte des statischen Datenelements zulässig sind (d. h. öffentliche Mitglieder), können Sie im Programm verweisen Gemäß dem oben genannten Format werden statische Datenelemente

hauptsächlich verwendet, wenn jedes Objekt das gleiche Attribut hat. Beispielsweise ist für eine Einlagenklasse der Zinssatz für jede Instanz derselbe. Daher sollten Zinsen als statisches Datenelement der Einlagenklasse festgelegt werden. Dies hat zwei Vorteile: Unabhängig davon, wie viele Einzahlungsklassenobjekte definiert sind, teilen sich alle Zinsdatenmitglieder den im globalen Datenbereich zugewiesenen Speicher, sodass Speicherplatz gespart wird. Zweitens: Sobald die Zinsen geändert werden müssen, werden die Zinsen aller Einzahlungsobjekte geändert.

Statische Variableninitialisierung

Zum Beispiel:

class A { 
public $f1 = 'xxxx'; 
static public $f2 = 100; 
}

Wenn Sie einem Objekt eine Variable zuweisen möchten, kann diese nur im Konstruktor initialisiert werden, zum Beispiel:

class A { 
private $child; 
public function construct() { 
$this->child = new B(); 
} 
}

Aber es gibt keine statische Dinge in PHP ähneln denen in Java-Konstruktoren/statischen Blöcken, es gibt keinen geeigneten Zeitpunkt, sie zu initialisieren.
Es gibt Möglichkeiten, das Problem für geteilte Mitglieder zu lösen, zum Beispiel:

class A { 
static public $child; 
} 
A::$child = new B();

Für private Mitglieder scheint es keine saubere Methode zu geben, Sie können nur Folgendes tun:

class A { 
static private $child; 
static public initialize() { 
self::$child = new B(); 
} 
} 
A::initialize();

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der statischen PHP-Mitgliedsvariablen und der Initialisierung statischer Variablen. 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