PHP预定义接口之Iterator(迭代器)接口演示

作者: Darren 分类: php 发布时间: 2019-07-31 22:48

主要是用于遍历类中未公开的数组数据,这个接口需要5个方法,具体看下面的demo

<?php
   class A implements iterator
   {
       protected $link = [
           "brand"=>"huawei",
           "goodsName"=>"p20",
           "price"=>"3500",
           "channel"=>"4G",
       ];
// Iterator::current — 返回当前元素
// Iterator::key — 返回当前元素的键
// Iterator::next — 向前移动到下一个元素
// Iterator::rewind — 返回到迭代器的第一个元素
// Iterator::valid — 检查当前位置是否有效
       public function current()
       {
            // 返回当前元素的值
           return current($this->link);
       }
       public function key()
       {
            // 获取键值
            return key($this->link);
       }
       public function next()
       {
            // 指针下移
            return next($this->link);
       }
       public function rewind()
       {
            // 重置指针
            return reset($this->link);
       }
       public function valid()
       {
            // 判断有没有值
            return !is_null(key($this->link));
       }

   }

   $obj = new A();
   foreach ($obj as $key => $value) {
       echo "$key=>$value","<br>";
   }

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注