Heim > Backend-Entwicklung > PHP-Tutorial > PHP verwendet das Schlüsselwort static, um statische Eigenschaften und statische Methoden für die gemeinsame Nutzung von Code zu deklarieren

PHP verwendet das Schlüsselwort static, um statische Eigenschaften und statische Methoden für die gemeinsame Nutzung von Code zu deklarieren

黄舟
Freigeben: 2023-03-12 12:08:01
Original
1837 Leute haben es durchsucht

PHP verwendet das statische Schlüsselwort , um statische Eigenschaften und statische Methoden zu deklarieren.

In PHP werden Mitgliedseigenschaften und Mitgliedsmethoden , die durch das statische Schlüsselwort geändert werden, als statische Eigenschaften bezeichnet und statische Methoden.

Statische Eigenschaften und statische Methoden können direkt verwendet werden, ohne dass sie von einer Klasse instanziiert werden.

1. Statische Attribute

Statische Attribute sind Mitgliedsattribute, die mit dem Schlüsselwort static geändert werden. Sie gehören zur Klasse selbst und nicht zu einer Instanz der Klasse. Sie entspricht einer in der Klasse gespeicherten globalen Variablen und kann überall in der Klasse aufgerufen werden.

Auf statische Eigenschaften kann nicht über ein Objekt zugegriffen werden, dessen Klasse instanziiert wurde.

Das Syntaxformat für den Zugriff auf statische Attribute lautet wie folgt:

类名称::$静态属性名称
Nach dem Login kopieren

Das Symbol „::“ wird als Bereichsanalyse-Operator bezeichnet, der für den Zugriff verwendet wird Statische Attribute, statische Methoden und Konstanten können auch verwendet werden, um Mitglieder und Methoden in einer Klasse zu überschreiben.

Fügen Sie den Operator „self::“ vor dem Namen des statischen Attributs hinzu, um auf das statische Attribut in der Member-Methode innerhalb der Klasse zuzugreifen. Indem Sie nur den Klassennamen:: verwenden, können Sie statische Eigenschaften innerhalb der Klasse von außerhalb der Klasse aufrufen.

Hinweis:

Objekte können nicht über den Operator -> auf statische Eigenschaften zugreifen.

Wie alle anderen statischen PHP-Variablen können statische Eigenschaften nur mit Literalen oder Konstanten initialisiert werden und können keine Ausdrücke verwenden. Eine statische Eigenschaft kann also mit einer Ganzzahl oder einem Array initialisiert werden, sie kann jedoch nicht mit einem anderen Variablen- oder Funktionsrückgabewert initialisiert werden und kann auch nicht auf ein Objekt verweisen.

2. Statische Methode

Die statische Methode ist eine Mitgliedsmethode, die durch das Schlüsselwort static geändert wird. Da es durch kein Objekt eingeschränkt wird, können Sie direkt auf die statischen Methoden in der Klasse verweisen, ohne die Klasse zu instanziieren.

Auf statische Methoden kann über ein Objekt einer instanziierten Klasse zugegriffen werden.

Das Syntaxformat der statischen Methodenreferenz lautet wie folgt:

类名称::静态方法名称([参数1,参数2,...])
Nach dem Login kopieren

Fügen Sie auf ähnliche Weise den Operator „self::“ vor dem Namen der statischen Methode hinzu, Sie können ihn in verwenden Member-Methode innerhalb der Klasse Referenzieren Sie statische Methoden. Indem Sie nur den Klassennamen:: verwenden, können Sie statische Methoden innerhalb der Klasse von außerhalb der Klasse aufrufen.

Hinweis:

In statischen Methoden können nur statische Variablen aufgerufen werden, keine gewöhnlichen Variablen.

Der statische Aufruf einer nicht statischen Methode führt zu einem Fehler auf E_STRICT-Ebene.

Da statische Methoden keinen Aufruf eines Objekts erfordern, ist die Pseudovariable $this in statischen Methoden nicht verfügbar.


Tipps

Die Verwendung statischer Elemente besteht nicht nur darin, dass das Objekt nicht mehr instanziiert werden muss, sondern auch darin, die geänderten statischen Daten nach der Zerstörung des Objekts weiterhin zu speichern, damit dies möglich ist Fahren Sie beim nächsten Mal fort.

Um mit PHP 4 kompatibel zu sein, sind statische Eigenschaften und statische Methoden standardmäßig öffentlich, wenn sie nicht als geschützt oder privat angegeben sind.

Seit PHP 5.3.0 können Sie eine Variable verwenden, um eine Klasse dynamisch aufzurufen, aber der Wert der Variablen darf nicht die Schlüsselwörter self, parent oder static sein.


Erklärung

Statische Mitglieder müssen keine Objekte instanziieren, wenn die Klasse zum ersten Mal geladen wird, sodass der direkte Aufruf statischer Mitglieder schneller ist. Wenn jedoch zu viele statische Mitglieder deklariert werden, wird der Speicherplatz ständig belegt, was sich auf die Funktionalität des Systems auswirkt. Diese Skala kann nur durch Anhäufung von Übung wirklich erfasst werden!


Beispiel

<?php
class website{  static $num="0";                         // 定义静态变量
  public function visit(){                 // 定义visit方法
    echo "您是第".self::$num."位访客!";   // 输出静态变量信息
    self::$num++;                          // 静态变量做自增运算
  }
}

echo &#39;第一次实例化调用:<br />&#39;;
$website=new website();                    // 实例化对象
$website->visit();                         // 调用对象$website的visit()方法
$website->visit();
$website->visit();

echo &#39;<br />第二次实例化调用:<br />&#39;;
$website2=new website();                   // 改变对象句柄实例化对象
$website2->visit();
$website2->visit();
$website2->visit();
?>
Nach dem Login kopieren

Sehen Sie sich den Anzeigeeffekt von PHP an, indem Sie das Schlüsselwort static verwenden, um statische Eigenschaften und statische Methoden im Browser zu deklarieren. Wie im Bild unten gezeigt:

Das obige ist der detaillierte Inhalt vonPHP verwendet das Schlüsselwort static, um statische Eigenschaften und statische Methoden für die gemeinsame Nutzung von Code zu deklarieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage