• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP预定义接口——Iterator用法示例

    本文实例讲述了PHP预定义接口——Iterator用法。分享给大家供大家参考,具体如下:

    Iterator(迭代器)接口

    可在内部迭代自己的外部迭代器或类的接口。

    接口摘要

    Iterator extends Traversable {
        /* 方法 */
        abstract public current ( void ) : mixed
        abstract public key ( void ) : scalar
        abstract public next ( void ) : void
        abstract public rewind ( void ) : void
        abstract public valid ( void ) : bool
    }
    
    

    例:

    ?php
    class myIterator implements Iterator
    {
      private $position = 0;
      private $array = array(
        'first_element',
        'second_element',
        'last_element',
      );
    
      /**
       * 重置键的位置
       */
      public function rewind(): void
      {
        var_dump(__METHOD__);
        $this->position = 0;
      }
    
      /**
       * 返回当前元素
       */
      public function current()
      {
        var_dump(__METHOD__);
        return $this->array[$this->position];
      }
    
      /**
       * 返回当前元素的键
       * @return int
       */
      public function key(): int
      {
        var_dump(__METHOD__);
        return $this->position;
      }
    
      /**
       * 将键移动到下一位
       */
      public function next(): void
      {
        var_dump(__METHOD__);
        ++$this->position;
      }
    
      /**
       * 判断键所在位置的元素是否存在
       * @return bool
       */
      public function valid(): bool
      {
        var_dump(__METHOD__);
        return isset($this->array[$this->position]);
      }
    }
    
    $it = new myIterator;
    
    foreach ($it as $key => $value) {
      var_dump($key, $value);
      echo "\n";
    }
    
    

    输出结果:

    string 'myIterator::rewind' (length=18)
    string 'myIterator::valid' (length=17)
    string 'myIterator::current' (length=19)
    string 'myIterator::key' (length=15)
    int 0
    string 'first_element' (length=13)
    string 'myIterator::next' (length=16)
    string 'myIterator::valid' (length=17)
    string 'myIterator::current' (length=19)
    string 'myIterator::key' (length=15)
    int 1
    string 'second_element' (length=14)
    string 'myIterator::next' (length=16)
    string 'myIterator::valid' (length=17)
    string 'myIterator::current' (length=19)
    string 'myIterator::key' (length=15)
    int 2
    string 'last_element' (length=12)
    string 'myIterator::next' (length=16)
    string 'myIterator::valid' (length=17)

    由结果可知,当类实现了Iterator接口,实现改类实例数据集的时候首先会将数据集的键重置,然后逐步后移,每次都会进行然后返回当前元素以及当前键。

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • PHP之预定义接口详解
    • PHP 预定义变量、魔术常量和魔术方法功能与用法小结
    • 不常用但很实用的PHP预定义变量分析
    • PHP中预定义的6种接口介绍
    • php中常用的预定义变量小结
    • php学习笔记 [预定义数组(超全局数组)]
    • PHP教程 预定义变量
    • 详解PHP的7个预定义接口
    上一篇:PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
    下一篇:PHP页面静态化——纯静态与伪静态用法详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP预定义接口——Iterator用法示例 PHP,预,定义,接口,Iterator,