Перегрузка оператора [] в PHP


Обратите внимание на классы из серии SPL, а именно на ArrayObject. Всё что необходимо, так это унаследовать класс ArrayObject и все экземпляры данного класса можно будет использовать как массивы. Для перегрузки оператора [] необходимо реализовать функцию offsetSet, передав индекс и значение элемента: class в extends

ArrayObject {
public function offsetSet($i, $v) {
echo 'appending ' . $v;
parent::offsetSet($i, $v);
}
}
$a = new a;
$a[] = 1;