Statische Mitglieder einer Klasse werden direkt aus dem Klassenkontext aufgerufen; die Klasse muss nicht als Objekt instanziiert worden sein. Deshalb spricht man bei statischen Methoden/Eigenschaften auch von “Klassenmethoden” und “Klasseneigenschaften” (vs. Objektmethoden, Objekteigenschaften).

Wozu man statische Eigenschaften/Methoden braucht

z.B. Hilfsmethoden, die keine Werte eines Objekts brauchen, sondern unabhängig vom Objektzustand benutzt werden können (z.B. Generierung einer Tabellenausgabe)

z.B. Eigenschaften, mit denen die Anzahl der instanziierten Objekte gezählt wird

Verwendung statischer Methoden/Eigenschaften

Das Schlüsselwort bei der Definition von Methoden/Eigenschaften ist static. Wenn man statische Mitglieder verwendet, verwendet man nicht $this-> (da es ja kein Objekt gibt), sondern

  • Klassenname::Mitglied
  • self::Mitglied (wenn die Eigenschaft/Methode innerhalb einer Klasse verwendet wird; möglich ist aber auch Klassenname)
  • parent::Mitglied bei Unterklassen (aber auch Verwendung des Klassennamens möglich)

Der so genannte Nachrichtenaustausch, der zwischen den Objekten realisiert wird, liegt lediglich darin, dass alle Objekte an einer zentralen Stelle – nämlich in einer statischen Klasseneigenschaft – nachsehen können, welcher Wert dort gespeichert ist. Sofern diese Eigenschaft privat ist, gilt dies natürlich nur innerhalb der Klasse. … Verwenden Sie statische Methoden, wenn kein Objektbezug notwendig ist und wenn die Methode wie ein Werkzeug in einem Werkzeugkasten eingesetzt wird (Skulschus 2007:43, 46)