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!

PHP - Static Properties

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:

  1. Sie werden von allen Instanzen einer Klasse geteilt.
  2. Sie können ohne Erstellung eines Objekts der Klasse aufgerufen werden.
  3. 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:

  1. Wir deklarieren eine statische Eigenschaft $count und initialisieren sie auf 0.
  2. Die increment() Methode erhöht die Anzahl um 1.
  3. 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