Objektorientierte Puristen haben über PHP 4 immer die Nase gerümpft - zu Recht: Denn in der Vierer-Version war es nicht möglich, Variablen und Methoden innerhalb einer Klasse vor einem Zugriff von außen zu schützen.

Gerade Programmierer, die in gemeinsamen Projekten arbeiten oder ihren Code weitergeben, brauchen aber ein solches Feature. Denn wenn jede Variable und Methode von außen zugänglich ist, schafft das zusätzliche Fehlerquellen: Jeder andere Programmierer kann jederzeit eine beliebige Variable im Objekt ändern und damit unerwünschte und unerwartete Resultate erzeugen. (strassenprogrammierer.de)

Der Sinn von Objektorientierung ist es nicht, schnellere Programme zu erstellen, sondern deren Entwicklung zu beschleunigen und vor allem deren Erweiterbarkeit zu gewährleisten.

Vererbung ist dabei ein wichtiger Punkt, und abstrakte Klassen sind eine wundervolle Möglichkeit, einen generellen Ansatz zu programmieren, der dann von vielen Erben auf die Bedrfnisse angepasst wird. (Jochen Stärk: PHP-5-Tutorial, OOP)

gute Wartbarkeit und Erweiterbarkeit