PHP - Statische Eigenschaften
Hallo da draußen, angehende Programmierer! Heute tauchen wir in die aufregende Welt der statischen Eigenschaften in PHP ein. Keine Sorge, wenn du neu im Programmieren bist – ich werde dich bei jedem Schritt mit der gleichen Geduld führen, die ich in meinen Kursen seit Jahren verwende. Los geht's!
Was sind statische Eigenschaften?
Bevor wir uns dem Code zuwenden, lassen Sie uns verstehen, was statische Eigenschaften sind. Stell dir vor, du bist in einem Klassenzimmer (genau wie meinem!), und dort gibt es eine Whiteboard, die jeder sehen und darauf schreiben kann. Eine statische Eigenschaft ist wie diese Whiteboard – sie gehört zur Klasse selbst, nicht zu einem bestimmten Schüler (oder Objekt, in Programmiersprache).
Wichtige Merkmale von statischen Eigenschaften:
- Sie werden von allen Instanzen einer Klasse geteilt.
- Sie können ohne Erstellung eines Objekts der Klasse aufgerufen werden.
- Sie werden mit dem Schlüsselwort
static
deklariert.
Nun sehen wir, wie das in der Praxis funktioniert!
Beispiel für statische Eigenschaften
Lassen Sie uns eine einfache Klasse namens Counter
erstellen, um statische Eigenschaften zu demonstrieren:
class Counter {
public static $count = 0;
public function increment() {
self::$count++;
}
public static function getCount() {
return self::$count;
}
}
Lassen Sie uns das auseinandernehmen:
- Wir deklarieren eine statische Eigenschaft
$count
und initialisieren sie auf 0. - Die
increment()
Methode erhöht die Anzahl um 1. - Die
getCount()
Methode gibt die aktuelle Anzahl zurück.
Nun verwenden wir diese Klasse:
echo Counter::$count; // Ausgabe: 0
$counter1 = new Counter();
$counter1->increment();
echo Counter::$count; // Ausgabe: 1
$counter2 = new Counter();
$counter2->increment();
echo Counter::$count; // Ausgabe: 2
echo Counter::getCount(); // Ausgabe: 2
Ist das nicht toll? Unabhängig davon, wie viele Counter
-Objekte wir erstellen, teilen sie alle dasselbe $count
. Es ist, als ob alle Schüler in meinem Klassenzimmer einen Whiteboard-Zähler teilen!
Das "self" Schlüsselwort
Vielleicht hast du bemerkt, dass wir self::$count
in unserer Klasse verwendet haben. Das self
Schlüsselwort ist so, als ob man "diese Klasse" sagt – es bezieht sich auf die aktuelle Klasse. Es ist besonders nützlich bei statischen Eigenschaften und Methoden.
Lassen Sie uns unsere Counter
Klasse erweitern, um mehr Verwendungen von self
zu sehen:
class Counter {
public static $count = 0;
private static $secretCount = 100;
public function increment() {
self::$count++;
self::incrementSecretCount();
}
private static function incrementSecretCount() {
self::$secretCount++;
}
public static function getSecretCount() {
return self::$secretCount;
}
}
Hier haben wir eine $secretCount
hinzugefügt, die privat ist (shh, es ist ein Geheimnis!). Wir verwenden self
, um sowohl statische Eigenschaften als auch Methoden innerhalb der Klasse zuzugreifen.
Das "parent" Schlüsselwort
Nun sprechen wir über Vererbung und das parent
Schlüsselwort. Stell dir vor, du lernst von deinen Eltern, wie man kocht. Du könntest einige ihrer Rezepte (vererbte Methoden) verwenden, aber einen eigenen Twist hinzufügen. In PHP lässt dich das parent
Schlüsselwort auf Methoden und Eigenschaften der Elternklasse zugreifen.
Lassen Sie uns eine SuperCounter
erstellen, die unsere Counter
erweitert:
class SuperCounter extends Counter {
public function superIncrement() {
parent::increment();
parent::increment();
self::$count++; // Wir können immer noch `self` für die vererbte statische Eigenschaft verwenden
}
}
Verwendung unseres neuen SuperCounter
:
$superCounter = new SuperCounter();
$superCounter->superIncrement();
echo SuperCounter::$count; // Ausgabe: 3
Die superIncrement()
Methode ruft die Elternklasse's increment()
zweimal auf und erhöht dann noch einmal, was in einer Gesamterhöhung von 3 resultiert.
Tabelle der statischen Methoden
Lassen Sie uns die statischen Methoden, die wir gesehen haben, in einer praktischen Tabelle zusammenfassen:
Methode | Beschreibung |
---|---|
self::$property |
Greift auf eine statische Eigenschaft innerhalb der gleichen Klasse zu |
self::method() |
Ruft eine statische Methode innerhalb der gleichen Klasse auf |
ClassName::$property |
Greift auf eine statische Eigenschaft von außerhalb der Klasse zu |
ClassName::method() |
Ruft eine statische Methode von außerhalb der Klasse auf |
parent::method() |
Ruft eine Methode der Elternklasse in einer Kindklasse auf |
Schlussfolgerung
Und das war's, Freunde! Wir haben die Welt der statischen Eigenschaften in PHP erkundet, von grundlegender Verwendung bis hin zur Vererbung. Denken Sie daran, dass statische Eigenschaften wie das Klassenzimmer-Whiteboard sind – von allen geteilt und für jeden zugänglich, der die Klasse kennt.
Wie bei jedem Werkzeug im Programmieren sollten Sie statische Eigenschaften weise verwenden. Sie sind großartig für Zähler, Konfigurationseinstellungen oder jede Art von Daten, die über alle Instanzen einer Klasse geteilt werden sollten. Übermäßiger Gebrauch kann jedoch zu schwer zu handhabendem und zu testendem Code führen.
Weiter üben, und bald wirst du statische Eigenschaften wie ein Profi verwenden! Und denken Sie daran, im Programmieren wie in meinem Klassenzimmer gibt es keine dummen Fragen – nur Gelegenheiten zum Lernen. Viel Spaß beim Programmieren!
Credits: Image by storyset