public function rewind()
 {
     parent::rewind();
     if ($this->valid()) {
         $this->currentResult = $this->handleItem($this->current());
     }
     if ($this->hasNext()) {
         $this->nextResult = $this->handleItem($this->getInnerIterator()->current());
     }
 }
 /** @test */
 public function testMainFunctionality()
 {
     $count = 0;
     $it = new CachingIterator(new MapIterator(new ArrayIterator(range(0, 10)), function ($i) use(&$count) {
         $count += 1;
         return $i;
     }));
     $it->rewind();
     $this->assertEquals(0, $count);
     $it->valid();
     $this->assertEquals(0, $it->current());
     $it->valid();
     $it->next();
     $this->assertEquals(1, $it->current());
     $this->assertEquals(1, $it->current());
     $this->assertEquals(1, $it->current());
     $it->valid();
     $it->next();
     $this->assertEquals(2, $it->current());
     $this->assertEquals(3, $count);
 }
 /**
  * Rewinds the Iterator.
  * @return void
  */
 public function rewind()
 {
     parent::rewind();
     $this->counter = parent::valid() ? 1 : 0;
 }
$it[3] = 'bar';
$it['baz'] = '25';
var_dump($it[2]);
var_dump($it[3]);
var_dump($it['baz']);
unset($it[0]);
unset($it[2]);
unset($it['baz']);
var_dump(isset($it[0]));
// unset
var_dump(isset($it[1]));
// still present
var_dump(isset($it[2]));
// unset
var_dump(isset($it[3]));
// still present
var_dump(isset($it['baz']));
echo "===REWIND===\n";
$it->rewind();
// cleans and reads first element
var_dump(isset($it[0]));
// pre-fetched
var_dump(isset($it[1]));
// deleted
var_dump(isset($it[2]));
// unset
var_dump(isset($it[3]));
// deleted
?>
===DONE===
<?php

$data = array('Mela', 'Pera', 'Kiwi', 'Banana', 'Pompelmo');
$it = new ArrayIterator($data);
$iterator = new CachingIterator($it);
for ($iterator->rewind(); $iterator->valid(); $iterator->next()) {
    echo $iterator, PHP_EOL;
}
 public function rewind()
 {
     $this->isCurrentChildrenCacheValid = false;
     return parent::rewind();
 }
Beispiel #7
0
next(){parent::next();if(parent::valid()){$this->counter++;}}function
rewind(){parent::rewind();$this->counter=parent::valid()?1:0;}function
 function rewind()
 {
     $this->hasChildren = false;
     $this->getChildren = NULL;
     parent::rewind();
 }
Beispiel #9
0
<?php

$a = array("some", "blah");
$i = new ArrayIterator($a);
$ci = new CachingIterator($i);
$ci->rewind();
?>
===DONE===