自定义或修改迭代过程(比如修改迭代器中的返回值)。
<?php
namespace SPL\SPLInterface;
class MyOuterIterator extends \IteratorIterator {
public function current()
{
return parent::current().'_tail'; // TODO: Change the autogenerated stub
}
public function key()
{
return 'pre_'.parent::key(); // TODO: Change the autogenerated stub
}
}
$array = ['1111', '2222', '3333'];
$outer = new MyOuterIterator(new \ArrayIterator($array));
foreach ($outer as $k => $v)
{
var_dump($k, $v);
echo PHP_EOL;
}