迭代器模式

概念

可帮助构造特定的对象,那些对象能够提供单一标准接口循环或迭代任何类型的可计数数据。

场景
  1. 访问一个聚合对象的内容而无需暴露它的内部表示。
  2. 支持对聚合对象的多种遍历。
  3. 为遍历不同的聚合结构提供一个统一的接口 (即,多态迭代)。
代码
<?php  

// 迭代器:可帮助构造特定的对象,那些对象能够提供单一标准接口循环或迭代任何类型的可计数数据
class MyIterator implements Iterator
{
    private $var = [];

    public function __construct($array)
    {
        $this->var = $array;
    }

    public function rewind()
    {
        reset($this->var);
    }

    public function current()
    {
        return current($this->var);
    }

    public function valid()
    {
        return $this->current() !== false;
    }

    public function next()
    {
        return next($this->var);
    }

    public function key()
    {
        return key($this->var);
    }
}  

$values = ['a', 'b', 'c'];
$it = new MyIterator($values);

foreach ($it as $a => $b) {
    print "$a: $b<br>";
}
执行结果
0: a<br> 1: b<br> 2: c<br>

出自:https://learnku.com/docs/shxdledu/php-design-pattern-series-iterator/9286

彼特城博客
请先登录后发表评论
  • latest comments
  • 总共0条评论