Hi,
(eher aus Interesse als aus praktischer Notwendigkeit) folgende PHP-Frage:
Wenn ich auf ein Objekt der Klasse ArrayObject print_r() anwende, dann wird genau das vom Objekt simulierte Array ausgegeben, also genau diejenigen Eigenschaften, über die die Objektiteration erfolgt.
Nun habe ich eine andere Klasse, die "von Hand" die Interfaces ArrayAccess und Iterator implementiert. Davon lässt sich print_r() noch nicht aus der Ruhe bringen, es liefert eine normale Objekt-Ausgabe.
ArrayObject implementiert IteratorAggregate (und nicht, wie ich, Iterator), und nutzt standardmäßig einen Iterator der Klasse ArrayIterator. Die stellt aber keine Methoden bereit, die ich nicht auch bereit stelle.
Also meine Frage: Wie überlistet ArrayObject die Funktionen print_r() und var_dump()? Weiß jemand Rat?
Danke, viele Grüße
der Bademeister