echo $begrüßung;
Kann mir jemand ein praktisches Beispiel geben, wo Klassen wirklich sinnvoll sind?
Die OOP wurde erfunden, weil die bisherige Arbeit nur mit Funktionen und extra gehaltenen Daten unpraktisch und unübersichtlich wurde. Für Wald- und Wiesen-Script ist sie möglicherweise Overkill. Doch auch da lassen sich Objekte einsetzen. Beispielsweise beim Datenbankzugriff. Normalerweise erzeugt man beim Verbinden eine Verbindungskennung, die man an weitere Datenbankfunktionen weiterreichen müsste. (PHP macht das bei nur einer Verbindung zwar automatisch, aber gehen wir mal davon aus, dass der Ordnung halber die Verbindungkennung immer als Parameter mitgegeben wird.) Mit PDO - eine Datenbankabstraktionsschicht - erzeugt man stattdessen ein Objekt, dessen Methoden man aufruft, um bestimmte Dinge zu erreichen
(Beispiel aus dem Handbuch genommen und leicht bearbeitet)
try {
$dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->setAttribute(PDO::ATTR_CASE, PDO::CASE_NATURAL);
$dbh->beginTransaction();
$dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')");
$dbh->exec("insert into salarychange (id, amount, changedate) values (23, 50000, NOW())");
$dbh->commit();
} catch (Exception $e) {
$dbh->rollBack();
echo "Failed: ", $e->getMessage();
}
PDO::ATTR_CASE und Konsorten sind Klassenkonstanten. Diese Konstanten stehen für einen bestimmten Wert, dem man damit einen sprechender Namen gegeben hat. Diese Konstanten werden aber nur Im Zusammenhang mit PDO benötigt, sie müssen also nicht im globalen Konstanten-Raum angelegt werden und geraten damit in Konflikt mit gleichnamigen Konstanten anderer Anwendungsfälle.
Diese durch die Klassen entstehenden Namensräume bringen Ordnung in die Ansammlung von Funktionen und Variablen, die sich im Laufe der Zeit in der eigenen Funktionssammlung bzw. in den Scripten ansammeln. Die Daten bilden mit den auf sie anwendbaren Methoden eine Einheit.
echo "$verabschiedung $name";