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);
?