It seems that the method directoryIterator::seek()is not implemented here with an exception. Instead, it simply does not return a value, and let it valid()process it.
ArrayObject::seek() "" OutOfBoundsException.
: ArrayObject (, , ) , , , , . , DirectoryIterator , . , valid() next() . key() , valid() 0.
, .
: Directory , reset , . , 1000 $it->seek(999), 999 .
IMHO, DirectoryIterator seekableIterator. , , directoryIterator , . , .
seekableIterator , - . SPL LimitIterator. :
$it = new ArrayIterator(range('a','z'));
$it = new LimitIterator($it, 5, 10));
limitIterator , seekableIterator, seek(), 5- , 5- .
: seekableIterator, . , , , .
: seek() . DirectoryIterator ( , ) seekableIterator, , seek() ( "" ).