As @Jonnycake pointed there is no documentation about the following behavior of next();
You need to call current() to really move forward without the need of a source loop.
Be:
<?php
$file = new SplFileObject("file.txt");
echo PHP_EOL . $file->current();
$file->next();
$file->next();
$file->next();
echo PHP_EOL . $file->current(); ?>
<?php
$file = new SplFileObject("file.txt");
echo PHP_EOL . $file->current();
$file->next(); $file->current();
$file->next(); $file->current();
$file->next();
echo PHP_EOL . $file->current(); ?>
Honestly, I don't know if it is waste of memory and/or CPU .