2

SeekableIterator インターフェイスを完成させるために seek() を実装したい場合、シークされた位置が無効な場合、内部的に古い位置に戻す必要がありますか? このような:

public function seek( $position )
{
    $oldPosition = $this->_position;
    $this->_position = $position;
    if( !$this->valid() )
    {
        $this->_position = $oldPosition;
        throw new OutOfBoundsException( 'Invalid seek position (' . $position . ')' );
    }
}
4

2 に答える 2

3

ガイドラインとして php.netインターフェイス リファレンスの実装例を使用する場合、いいえ、提供されたターゲット位置が有効でない場合でも、元の位置に「戻す」べきではありません。

于 2009-09-07T00:14:00.523 に答える
0

SPL ドキュメント のサンプル コードによると、位置を変更する必要があります。

于 2009-09-07T00:14:41.083 に答える