If you are using PHP5 (and you should be), take a look at the SPL ArrayObject classes. The documentation isn’t too good, but I think if you extend ArrayObject, you’d have your “fake” array.
EDIT: Here’s my quick example; I’m afraid I don’t have a valuable use case though:
class a extends ArrayObject {
public function offsetSet($i, $v) {
echo 'appending ' . $v;
parent::offsetSet($i, $v);
}
}
$a = new a;
$a[] = 1;