dedlfix: Klassen und Opperatoren ::

Beitrag lesen

echo $begrüßung;

Meine Frage war eigentlich so gemeint: Worin liegt der Vorteil dieser eigentlich nur "Verschachtelung" von "Funktionen", den da ich hier ja KEIN Objekt nutze kann man ja auch ned von Methoden reden...

Ich hatte bei meiner ersten Antwort übersehen, dass du hier statische Methodenaufrufe nutzt. Der Vorteil ist, dass diese Methoden hier in einer Klasse zusammengefasst sind und somit eine Art Namensraum simuliert wird. Du hast also quasi Funktionen, die nicht mit "echten" Funktionen kollidieren, die den gleichen Namen haben. Nachteil ist, dass das Schlüsselwort $this und damit Objekt-Variablen nicht genutzt werden können, da es beim statischen Aufruf keine Instanz gibt.
Ab PHP5 kann man statische Klassenvariablen definieren, die allerdings für alle Zugreifenden[*] gleich sind. Dies kann aber auch ein Vorteil sein, wenn man das Singleton-Pattern verwenden möchte.
Beispielsweise soll es von einem Datenbank-Objekt immer nur eine Instanz geben. Man kann dazu auf Verdacht hin am Anfang eines Scriptes eine Instanz der DB-Klasse erzeugen, diese einer Variable zuweisen und über diese Variable drauf zugreifen. Was aber, wenn man innerhalb einer Funktion das DB-Objekt braucht? Mit global zu arbeiten ist unschön. Und wenn sich herausstellt, dass man doch keine DB-Zugriffe braucht, weil z.B. der Anwender das Affenformular immer noch nicht richtig ausgefüllt hat, hat man umsonst die DB konnektiert. Hier greift dann das Singleton-Pattern. Eine statische Methode liefert entweder die bereits erzeugte Instanz aus oder erzeugt eine neue, liefert diese aus und merkt sie sich in einer statischen Klassen-Variable.
Ein Implementationsbeispiel befindet sich im oben verlinkten Handbuch-Kapitel.

echo "$verabschiedung $name";

[*] natürlich nur innerhalb einer Instanz eines Scripts