相关疑难解决方法(0)

为什么我必须回放IteratorIterator

$arrayIter = new ArrayIterator( array(1, 2) );
$iterIter = new IteratorIterator($arrayIter);

var_dump($iterIter->valid()); //false
var_dump($arrayIter->valid()); //true
Run Code Online (Sandbox Code Playgroud)

如果我先调用$ iterIter-> rewind(),则$ iterIter-> valid()为true.我很好奇为什么要调用rewind().我想它有充分的理由,但我希望它只是在内部迭代器处于的任何状态下开始迭代,并在开始迭代之前将其作为回退选项.

调用next()似乎也把它置于"有效"状态(虽然它前进到下一个位置,表明它先前处于第一个位置).

$arrayIter = new ArrayIterator(array(1,2));
$iterIter = new IteratorIterator($arrayIter);

$iterIter->next();
var_dump($iterIter->valid()); 
Run Code Online (Sandbox Code Playgroud)

同样,我很好奇为什么我需要调用rewind(),尽管内部迭代器处于有效状态.

php spl iterator

2
推荐指数
1
解决办法
1264
查看次数

标签 统计

iterator ×1

php ×1

spl ×1