Многие PHP-программисты не знают, что для того, чтобы объект вёл себя как массив не надо переопределять ни одного метода или реализовывать интерфейс. Достаточно расширить SPL-класс ArrayObject:
class MyCoolClass extends ArrayObject{ function dump(){ print '<pre>'.print_r($this, true).'</pre>'; } } $myCoolObject = new MyCoolClass(); $myCoolObject['name'] = 'Alexander'; $myCoolObject->dump();