It should be noted that offsetExists behaves like "offsetIsSet" rather than "offsetIsValid":
<?php
$arr = new SplFixedArray(3);
var_dump($arr->offsetExists(1)); // false
$arr[1] = 42; // $arr->offsetSet(1, 42);
var_dump($arr->offsetExists(1)); // true
$arr[1] = null; // $arr->offsetSet(1, null);
var_dump($arr->offsetExists(1)); // true
unset($arr[1]); // $arr->offsetUnset(1);
var_dump($arr->offsetExists(1)); // false
var_dump($arr);
/*
object(SplFixedArray)[1]
null
null
null
*/
?>