just to be annoying :-)

when you test if a key exists in the underlying array (line 6 of the ArrayAccess class example) you do:

return isset($this->contents[$index]);

this means that if $this->contents[$index] was set to null (for whatever good reason), it will return false. Shiuldn't it be

return array_key_exists($index,$this->contents);

?