PHP设计模式系列 - 迭代器

未匹配的标注
  • PHP迭代器:

可帮助构造特定的对象,那些对象能够提供单一标准接口循环或迭代任何类型的可计数数据。(不是特别常用,在PHP中)

  • 使用场景:

1.访问一个聚合对象的内容而无需暴露它的内部表示。

2.支持对聚合对象的多种遍历。

3.为遍历不同的聚合结构提供一个统一的接口(即,多态迭代)。

  • PHP代码实现:
<?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>";
}

参考:《PHP设计模式》Aaron Saray著

原文

blog.csdn.net/initphp/article/deta...

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
wangchunbo
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~