Neben der Übersichtlichkeit und dem klereren Namensraum steigt die Wiederverwendbarkeit von Funktionalität durch Verwendung von Klassen enorm, wenn man sie richtig einsetzt.
Nehmen wir ein Beispiel:
Du schreibst ein Skript, was bbCode Tags in html umwandelt.
Du hast eine Superklasse BbCodeParser. Die definiert einen Constructor, dem Du den Quellstring übergibst und eine Methode, die den String in html Tags umwandelst.
Diese Funktion macht jedoch nicht alles selbst, sondern sucht nur die Tags und ihre Parameter raus. Mit diesen Parametern ruft sie Funktionen in der Klasse auf, die das jeweilige bbCode Tag in html umwandeln.
Diese erzeugen den html Code, den Du bei Erstellung der Klasse für sinnvoll hältst.
Später stellst Du fest, dass Du auf Deiner Seite verschiedene Bereiche hast, in denen der bbCode unterschiedlich interpretiert werden soll. Zum Beispiel hast Du eine Art CMS, in dem Du selbst die Artikel für Deine Seite schreibst und später baust Du ein Gästebuch in Deine Seite ein.
In dem Gästebuch willst Du aber nicht, dass User die Schriftgröße ändern können und Links sollen immer in einem neuen Fenster geöffnet werden.
Du müsstest ohne Klassen Deine Funktion kopieren und anpassen und ihr einen neuen Namen geben.
Mit Klassen erbst Du einfach von Deiner Klasse BbCodeParser und überschreibst in der neuen Klasse GbCodeParser die Funktionen, die für [ size ] und [url ] zuständig sind.
Die restlichen Funktionen sind weiterhin verfügbar. Wenn Du ein Gästebucheintrag ausgibst initialisiest Du GbCodeParser, ansonsten BbCodeParser.
Nun fällt Dir auf, Du hast vergessen, dass Du Variablen extra hervorheben willst. Du änderst also Deine Superklasse BbCodeParser und musst nicht in allen Funktionen, die Du für bbCode geschrieben hast, dieses Tag neu einbringen und in etlichen Codes wühlen.
Ist nur ein Beispiel und es mag Dir lächerlich erscheinen, aber wenn Du ein Jahr Java programmierst, ärgerst Du Dich, dass PHP keine bessere Unterstützung für Klassen bietet, auch wenn PHP5 einen großen Schritt nach vorn gemacht hat.
Gruß hpvw
PS: Leider muss man sich in PHP selbst zwingen, um mit Klassen zu arbeiten. Wie mein Vorredner sagte, kostet es z.B. in Java einigen Aufwand, um der Objektorientierung aus dem Weg zu gehen.