Hello Andreas,
Aber es werden oft viele Daten und Objekte in verschiedenen Scripte verwendet, also sowohl gelesen als auch geschrieben. Wenn Du Klassen/Objekte verwendest wirst Du mehr oder weniger unabhängig von den Scripten an sich, wenn Du was ändern willst änderst Du das innerhalb eines Objektes, und alle Scripte die dieses Objekt verwenden profitieren davon ohne auf der anderen Seite geändert werden zu müssen, da Du ja nur über bestimmte Schnittstellen auf das Objekt zugreifst, die sich dann natürlich nicht ändern dürfen.
Das kann ich aber in der imperativen Programmierung auch, wenn ich die Daten nicht einzeln übergebe sondern in geblockten Strukturen. Das stammt schon aus der Assemblerzeit. Da hat man nur den Zeiger auf den Datenblock und dessen Größe übergeben und das Objekt (die Subroutine) musste sich die Daten dort rausholen. Man konnte dem Datenblock ständig Werte hinzufügen, die von der neueren Subroutige dann auch berücksichtigt wurden. Auch eine ältere kam dann mit neuen Daten zurecht, hat natürlich nur den ihr bekannten Teil verwertet.
Und bei den Funktionen funktionierte das genauso. Wenn die Funktion vorhanden war, hat sie in einem Register einen Kontrollwert zurückgegeben und wenn sie nicht vorhanden war, eben nicht. Dann wußte man, dass man den Datenblock nicht auswerten durfte. Die ganze DOS-API und der Network-Extender sind so aufgebaut. Selbstverständlich konnte man Standardprozeduren auch überschreiben. Jeder Treiber arbeitet so, dass er den INT einfach ersetzt.
Bei PHP kann man diese Konezpt deshalb so schön nutzen, da es sowohl "Arrays" als Value oder als Reference übernehmen kann, als auch "Arrays" als Funktionsrückgabewert haben kann.
Sich dafür einen sauberen Stil anzugewöhnen ist aber sicher genauso Komplex, wie die "echte" OOP ;-))
Liebe Grüße aus http://www.braunschweig.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen