您现在的位置是:首页 > PHP框架交流PHP框架交流

php把对象foreach 循环 IteratorAggregate遍历对象更简洁更简单 php进阶

上善若水2022-01-03 11:15:01【PHP框架交流】 1762人已围观

简介我们知道把一个对象当做数组去循环操作可以直接,实现接口Iterator实现中的current()next()key()valid()rewind(),实际上php提供系统的IteratorAggreg

我们知道把一个对象当做数组去循环操作可以直接,实现接口Iterator实现中的current()next()key()valid()rewind(),实际上php提供系统的IteratorAggregate也能实现相同的功能,而且更加简单.
IteratorAggregate只需要实现一个方法getIterator就可以比较便捷

class myData implements IteratorAggregate
{
    public $value ;

    public function __construct()
    {
        $this->value = [11,22,33,44,55];
    }

    public function getIterator()
    {
        return new ArrayIterator($this->value);
    }
}

$obj = new myData;
foreach ($obj as $key => $value) {
    echo $key, ' ', $value;
    echo "\n";
}

最后输入结果为:

0 11
1 22
2 33
3 44
4 55

看了下源码,发现yii底层使用的就是实现IteratorAggregate去实现对象的循环调用的,肯定强退这种方式,毕竟简洁.

很赞哦! (2)

相关文章

文章评论

站点信息

  • 建站时间:2019-10-24
  • 网站程序:Thinkphp6 Layui
  • 文章统计247篇文章
  • 标签管理标签云
  • 统计数据cnzz统计
  • 微信公众号:扫描二维码,关注我们