Heim >Backend-Entwicklung >PHP-Problem >PHP-Statik, was bedeutet das?
static ist ein in PHP integriertes Schlüsselwort. Wir können das Schlüsselwort static verwenden, um statische Methoden und Eigenschaften zu definieren, und es kann auch zum Definieren statischer Variablen und später statischer Bindungen verwendet werden.
Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.4, DELL G3-Computer
Was bedeutet PHP static?
static ist ein integriertes Schlüsselwort in PHP.
Statisches Schlüsselwort
Tipps
Auf dieser Seite wird erläutert, wie Sie das statische Schlüsselwort verwenden, um statische Methoden und Eigenschaften zu definieren. static kann auch zum Definieren statischer Variablen und später statischer Bindung verwendet werden. Sehen Sie sich die Seite oben an, um zu sehen, wie statisch dort verwendet wird.
Wenn Sie ein Klassenattribut oder eine Methode als statisch deklarieren, können Sie direkt darauf zugreifen, ohne die Klasse zu instanziieren. Der Zugriff kann statisch innerhalb eines instanziierten Klassenobjekts erfolgen.
Statische Methoden
Da statische Methoden nicht über Objekte aufgerufen werden müssen, ist die Pseudovariable $this in statischen Methoden nicht verfügbar.
Warnung
Der statische Aufruf einer nicht statischen Methode führt zu einem Fehler.
Vor PHP 8.0.0 war der statische Aufruf einer nicht statischen Methode veraltet und führte zu einer Warnung der Stufe E_DEPRECATED.
Beispiel #1 Beispiel für eine statische Methode
<?php class Foo { public static function aStaticMethod() { // ... } } Foo::aStaticMethod(); $classname = 'Foo'; $classname::aStaticMethod(); ?>
Statische Eigenschaften
Auf statische Eigenschaften wird mit dem Bereichsauflösungsoperator ( :: ) zugegriffen und kann nicht über den Objektoperator ( -> ) aufgerufen werden.
Es ist möglich, über eine Variable auf eine Klasse zu verweisen, aber der Wert dieser Variablen darf kein reserviertes Wort sein (z. B. self, parent und static).
Beispiel #2 Beispiel für eine statische Eigenschaft
<?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 . "\n"; $foo = new Foo(); print $foo->staticValue() . "\n"; print $foo->my_static . "\n"; // 未定义的 "属性" my_static print $foo::$my_static . "\n"; $classname = 'Foo'; print $classname::$my_static . "\n"; print Bar::$my_static . "\n"; $bar = new Bar(); print $bar->fooStatic() . "\n"; ?>
Ausgabe der obigen Routine in PHP 8 Ähnlich wie:
foo foo
Hinweis: Zugriff auf die statische Eigenschaft Foo::$my_static als nicht statisch in /in/V0Rvv in Zeile 23
Warnung: Undefinierte Eigenschaft: Foo::$my_static in /in/V0Rvv in Zeile 23
foo foo foo foo
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonPHP-Statik, was bedeutet das?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!