Statisch ist eine statische Variable in PHP. Die Variable ist eine globale statische Variable. Welchen Einfluss hat das Hinzufügen von Statik vor der Funktion oder Variablen? ? Nun, schauen wir uns das gemeinsam an. 1) Der Beschreibung globaler Variablen (externer Variablen) wird „statisch“ vorangestellt, um eine statische globale Variable zu bilden. Globale Variablen selbst sind statische Speichermethoden, und statische globale Variablen sind natürlich auch statische Speichermethoden. Es gibt keinen Unterschied zwischen den beiden in der Art und Weise, wie sie gespeichert werden. Der Unterschied zwischen den beiden besteht darin, dass der Geltungsbereich nicht statischer globaler
-Variablendas gesamte Quellprogramm ist. Wenn ein Quellprogramm aus mehreren Quelldateien besteht, sind nicht statische globale Variablen in jeder 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. 2) Aus der obigen Analyse ist ersichtlich, dass die Änderung einer lokalen Variablen in eine statische Variable ihre Speichermethode und ihre Lebensdauer ändert. Wenn Sie eine globale Variable in eine statische Variable ändern, ändert sich ihr Gültigkeitsbereich und schränkt ihren Verwendungsbereich ein.
3) Die statische Funktion unterscheidet sich vom normalen
Funktionsumfang, nur in dieser Datei. Funktionen, die nur in der aktuellen Quelldatei verwendet werden, sollten als interne Funktionen (statisch) deklariert werden und interne Funktionen sollten in der aktuellen Quelldatei beschrieben und definiert werden. Für Funktionen, die außerhalb der aktuellen Quelldatei verwendet werden können, sollten sie in einer Header-Datei angegeben werden. Die Quelldateien, die diese Funktionen verwenden möchten, müssen diese Header-Datei enthalten. Nach PHP5.3.0 können wir eine verwenden Variable zum dynamischen Aufrufen der Art. Der Wert dieser Variablen darf jedoch nicht die Schlüsselwörter self, parent oder static sein.
Beispiel #1 Beispiel für einen statischen Member-Code
Beispiel #2 Beispiel für einen statischen Methodencode<?php class Foo { public static $my_static = 'foo'; public function staticValue() { return self::$my_static; } } class Bar extends Foo { public function fooStatic() { return parent::$my_static; } } print Foo::$my_static . " "; $foo = new Foo(); print $foo->staticValue() . " "; print $foo->my_static . " "; // Undefined "Property" my_static print $foo::$my_static . " "; $classname = 'Foo'; print $classname::$my_static . " "; // PHP 5.3.0之后可以动态调用 print Bar::$my_static . " "; $bar = new Bar(); print $bar->fooStatic() . " "; ?>
<?php class Foo { public static function aStaticMethod() { // ... } } Foo::aStaticMethod(); $classname = 'Foo'; $classname::aStaticMethod(); // As of PHP 5.3.0 ?>
im Klasse Für die Verwendung in gibt das PHP-Handbuch die folgenden Konventionen an: 1. Deklarieren Sie Klassenmitglieder oder Methoden als statisch, und Sie können direkt darauf zugreifen, ohne die Klasse zu instanziieren. Auf statische Mitglieder (mit Ausnahme statischer Methoden) kann nicht über ein Objekt zugegriffen werden.
2. Da statische Methoden nicht über Objekte aufgerufen werden müssen, ist die Pseudovariable $this in statischen Methoden nicht verfügbar.
3. Auf statische Eigenschaften können Objekte nicht über den ->-Operator zugreifen.4. Der Aufruf einer nicht statischen Methode mit der Methode :: führt zu einem Fehler auf E_STRICT-Ebene.
Konzentrieren wir uns nun auf Artikel 4.
Betriebsumgebung: (Win32) PHP/5.3.3
class Foo{ public static $my_static = 'foo';//声明一个静态成员 public function staticValue() {//静态方法 return self::$my_static;// } public function run(){//非静态方法 return "abc <br>"; } public function callrun() { return self::run();//用self::方式调用一个非静态方法 } } echo Foo::$my_static . "<br >"; echo Foo::run();//用className::方法名调用非静态方法 echo Foo::callrun();
Der Anwendungsbereich statischer Variablen in PHP ist breiter Fügen Sie nicht nur den statischen Modifikator vor einer Klasse, Methode oder Variablen hinzu. Wir können sogar das statische Schlüsselwort zu den Variablen innerhalb der Funktion hinzufügen. Der Wert einer Variablen mit dem hinzugefügten statischen Modifikator geht auch nach der Ausführung der Funktion nicht verloren. Das heißt, die Variable merkt sich beim nächsten Aufruf dieser Funktion weiterhin ihren ursprünglichen Wert.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Anwendungsbeispielen des statischen Schlüsselworts in Funktionen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!