offsetGet($index) returns the value stored at $index in the cache. Until you've 
iterated over the items, the cache is empty and the index will not exist.
 <?php
        $cache = new \CachingIterator(
            new \ArrayIterator(['a', 'b', 'c', 'd']),
            \CachingIterator::FULL_CACHE);
        $shortRange = range(0, 1);
        foreach ($shortRange as $index) {
            $cache->next();
        }
        echo PHP_EOL . 'The cache' . PHP_EOL;
        var_export($cache->getCache());
        echo PHP_EOL;
        echo $cache->offsetGet('1') . PHP_EOL;
        echo $cache->offsetGet('2') . PHP_EOL;
?>
The cache
array (
  0 => 'a',
  1 => 'b',
)
b
Undefined index: 2