如果我想实现 seek() 来完成 SeekableIterator 接口,如果搜索的位置无效,我是否应该在内部恢复到旧位置?像这样:
public function seek( $position )
{
$oldPosition = $this->_position;
$this->_position = $position;
if( !$this->valid() )
{
$this->_position = $oldPosition;
throw new OutOfBoundsException( 'Invalid seek position (' . $position . ')' );
}
}