PHP:SeekableIterator::seek()
如果我想实现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 . ')' );
}
}
If I want to implement seek() to complete the SeekableIterator interface, should I internally revert to the old position if the seeked position is invalid? Like this:
public function seek( $position )
{
$oldPosition = $this->_position;
$this->_position = $position;
if( !$this->valid() )
{
$this->_position = $oldPosition;
throw new OutOfBoundsException( 'Invalid seek position (' . $position . ')' );
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用 php.net 接口参考的示例实现 作为指导,那么不,您不应该“恢复”到原始位置,即使提供的目标位置无效。
If you use the php.net interface reference's example implementation as a guideline, then no, you should not "revert" to the original position, even if the supplied target position isn't valid.
根据 SPL 文档中的示例代码 ,你还是应该换个位置。
According to the sample code from the SPL documentation, you should still change the position.