echo $begrüßung;
naja das Konzept der OOP lässt sich mit PHP nur relativ schlecht verwirklichen, da einfach bei jedem Seitenaufruf ein Script abläuft.
Programmiert man stattdessen Programme (in C# oder Java z.B.), wird einem das Konzept der OOP deutlich klarer und welcher Vorteile dieses hat.
Auch C# und Java spielen im Bereich der Webanwendungen in der selben Liga wie PHP und sind an die Gegebenheiten des Request-Response-Spielchens gebunden. Trotzdem bleiben sie zu dem Zweck objektorientiert repektive sind die auf Webanwendungen spezialisierten Teilbereiche beider Umgebungen (ASP.NET vs. JSF & Co.) hauptsächlich objektorientiert gelöst[1]. Und ebenso wie bei PHP werden Objekte nur für den einen Request benötigt, erstellt und an dessen Ende wieder beseitigt. Dass es sowohl bei ASP.NET als auch im Java-Umfeld Objekte gibt, die auf Anwendungsebene und damit länger als einen Request lang leben, bei PHP dies aber nicht der Fall ist, ändert ja nichts an der grundlegenden Möglichkeit, Requests objektorientiert abzuarbeiten. Andererseits ist PHP zwar für das Web entwickelt worden, aber ebenso lassen sich damit wie unter .NET und Java auf längere Laufzeiten ausgelegte Desktop- oder Server-Anwendungen erstellen.
Objektorientiert oder nicht ist also nicht prinzipiell an die Ablaufumgebung gebunden.
[1] Wenn man es drauf anlegt, kann man auch unter ASP.NET [2] imperative aussehende Lösungen erstellen. Vermutlich auch mit JSF (Java Server Faces) doch da kenne ich mich nicht gut genug aus.
Ganz gut finde ich das Paxisbuch Objektorientierung
http://openbook.galileocomputing.de/oo/
auch wenn es unter PHP nur bedingt Verwendung findet.
Das liegt vermutlich daran, dass andere Sprachen mehr der Möglichkeiten zum Anwenden der derzeit populären OOP-Features bieten. Bei PHP ist die Objektorientierung mehr oder weniger als nette Dreingabe zu sehen, die man auch ignorieren kann. Teilweise müssen aber auch einige der im Buch verwendeten Sprachen passen, wenn es zu solchen Themen wie Mehrfachvererbung kommt.
In PHP wird meistens zusammengehörige Funktionalitäten in Klassen gekapselt,
Das "meistens" sehe ich darin begründet, dass PHP hauptsächlich als Anfängersprache oder Sprache für kleinere Projekte gesehen wird.
Wenn man sich bestimmte Bibliothken für PHP anschaut (z.B. unter pear.php.net, oder ein PHP AJAX Framework etc.), dann sind diese auch in Klassen gebündelt. So verhindert man einfach, dass sich zwei Funktionen mit gleichen Namen aber für andere Bibliotheken in die Quere kommen.
Das ist auch ein guter Punkt. Durch die Bindung der Methoden und Eigenschaften an die Klassen schafft man sich quasi Namensräume und muss weniger Aufwand in die globale Eindeutigkeit von Bezeichnern stecken.
echo "$verabschiedung $name";