T-Rex: Variable an eine Klasse binden

Beitrag lesen

Ja, das macht dasselbe in grün, und noch etwas mehr, weil es nicht nur ArrayAccess implementiert. Allerdings hat man keinen direkten Zugriff auf die Daten, sondern kann nur die parent-Methoden verwenden. Das kann nachteilig sein, muss es aber nicht.

Stimmt doch gar nicht. Kannst auf die Daten direkt zugreifen:
$objHotti['irgend'] = "was";
echo $objHotti['irgend']; //--- was

ohne eine Implementierung einer Methode ! Man kann die Parent Methoden aber benutzen um die Eingaben z.B. zu validieren, ändern, loggen etc...

Also wie ein normales Array. Jedoch kann man die Klasse Hotti um Methoden erweitern. So könnte man dem ganzen z.B. auch eine save Methode geben, welche die Daten in die Datenbank speichert ...

Das sollte man möglichst vermeiden, damit die Klasse bei ihrer einen Aufgabe bleibt und kein Universalmonster wird. Eine Kuh melkt sich auch nicht selbst.

Deshalb stehen die Worte z.B. (zum Beispiel) dabei. Es ist nur ein Beispiel, eine Möglichkeit. Es war keine Empfehlung. Und die selbstmelkende Kuh wird gerade von Monsanto gezüchtet! Nee leider nicht, die sind damit beschäftigt die Euter noch größer und eitriger zu bekommen, damit noch mehr Milch weggeschüttet werden kann (EU Vorgabe), aber ich schweife ab :D.

... bzw. wiederum eine Klasse initialisiert, die das übernimmt.

Das ist mir etwas unverständlich.

Das wäre der richtige Ansatz um das Universalmonster zu umgehen. Dann würde der aufruf nicht so aussehen:
$objHotti->save();  //--- mit einer internen Speicherroutine
sondern
$objSaver->save( $objHotti );  //--- Speicherung wird von einem anderen Objekt übernommen.

Ein weiterer Vorteil ist, dass das ganze Konstrukt als normales Array betrachtet werden kann. Man kann es mittels foreach durchlaufen. Wer es komplett Objekt orientiert mag kann aber auch die ArrayIterator Klasse benutzen.
Jein. Normale Array-Funktionen kann man damit nicht oder nur begrenzt aufrufen.

Das stimmt. Gut dass ich mich hier auf das foreach beschränkt habe. Einige "Array"-Funktionen packen das ArrayObject, andere nicht. Dafür gibts aber die tolle Funktion "getArrayCopy". Dass gibt dir ein Array als Kopie des ArrayObjectes zurück.

Ansonsten denke ich sollten wir Hotti helfen und nicht unsere Posts zerpflücken. Wobei ich im Moment etwas empfindlich bin, da mein Chef ein Arschloch ist!

Gruß
Fussabtretter
T-Rex