PHP Iterable接口

PHPz
发布: 2023-08-20 14:49:09
转载
1058人浏览过

php iterable接口

介绍

Iterator 接口扩展了抽象的Traversable接口。PHP提供了许多内置的迭代器(称为SPL迭代器)用于许多常见功能。例如ArrayIteratorDirectoryIterator等。实现Iterator接口的用户类应该实现其中定义的抽象方法。

语法

Iterator extends Traversable {
   /* Methods */
   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
}
登录后复制

方法

Iterator::current — 返回当前元素

Iterator::key — 返回当前元素的键

Iterator::next — 移动到下一个元素

立即学习PHP免费学习笔记(深入)”;

Iterator::rewind — 将迭代器倒回第一个元素

jQuery新浪微博接口图片上传源代码
jQuery新浪微博接口图片上传源代码

jQuery新浪微博接口图片上传源代码

jQuery新浪微博接口图片上传源代码 36
查看详情 jQuery新浪微博接口图片上传源代码

Iterator::valid — 检查当前位置是否有效

在实现 IteratorAggregateIterator 接口时,必须在 implements 子句中将它们列在其名称之前。

迭代器示例

在下面的PHP脚本中,一个实现了接口的类包含一个私有变量作为数组。通过实现迭代器的抽象方法,我们可以使用 foreach 循环和 next() 方法遍历数组。

示例

<?php
class myIterator implements Iterator {
   private $index = 0;
   private $arr = array(10,20,30,40);
   public function __construct() {
      $this->index = 0;
   }
   public function rewind() {
      $this->index = 0;
   }
   public function current() {
      return $this->arr[$this->index];
   }
   public function key() {
      return $this->index;
   }
   public function next() {
      ++$this->index;
   }
   public function valid() {
      return isset($this->arr[$this->index]);
   }
}
?>
登录后复制

使用foreach循环,我们可以迭代MyIterator对象的数组属性

$it = new myIterator();
foreach($it as $key => $value) {
   echo "$key=>". $value ."</p><p>";
}
登录后复制

迭代也可以通过在while循环中调用next()方法来执行。在开始循环之前,请确保rewind迭代器。

示例

$it->rewind();
do {
   echo $it->key() . "=>" .$it->current() . "</p><p>";
   $it->next();
}
while ($it->valid());
登录后复制

输出

在两种情况下,对数组属性的遍历显示以下结果

0=>10
1=>20
2=>30
3=>40
登录后复制

以上就是PHP Iterable接口的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:tutorialspoint网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号