<?php

class MyIterator implements Iterator{

private $var = array();

public function __construct($array){

if(is_array($array)){

$this->var = $array;

}

}

public function rewind(){

echo "reminding<br>";

reset($this->var);

}
public function current(){

$var = current($this->var);

echo "current :$var<br>";

return $var;

}

public function key(){

$var = key($this->var);

echo "key::$var<br>";

return $var;

}

public function next(){

$var = next($this->var);
echo "next:$var<br>";

return $var;

}

public function valid(){

$var = $this->current() !== false;

echo "valid:{$var}<br>";

return $var;

}

}
$value = array(1,2,3);

$it = new MyIterator($value);

foreach($it as $a=> $b){

print "$a:$b<br>";
}

<?php

class MyIterator implements Iterator{

private $var = array();

public function __construct($array){

if(is_array($array)){

$this->var = $array;

}

}

public function rewind(){

echo "reminding<br>";

reset($this->var);

}
public function current(){

$var = current($this->var);

echo "current :$var<br>";

return $var;

}

public function key(){

$var = key($this->var);

echo "key::$var<br>";

return $var;

}

public function next(){

$var = next($this->var);
echo "next:$var<br>";

return $var;

}

public function valid(){

$var = $this->current() !== false;

echo "valid:{$var}<br>";

return $var;

}

}
$value = array(1,2,3);

$it = new MyIterator($value);

foreach($it as $a=> $b){

print "$a:$b<br>";
}

?>

?>

php 实现Iterator 接口的更多相关文章

  1. Collections+Iterator 接口 | Map+HashMap+HashTable+TreeMap |

    Collections+Iterator 接口 1. Collections 是一个操作 Set.List 和 Map 等集合的工具类 Collections 中提供了大量方法对集合元素进行排序.查询 ...

  2. Iterator接口。集合输出

    在集合中支持以下几种方式. iterator ListIterator foreach输出 emumeration输出. 集合输出的标准操作: 集合输出的时候必须形成以下的思路:只要碰到了集合输出的操 ...

  3. iterator接口

    Iterator用来做遍历,所有实现Collection接口的容器都有一个Iterator的方法以返回一个Iterator接口的对象

  4. java集合 之 Collection和Iterator接口

    Collection是List,Queue和Set接口的父接口,该接口里定义的方法即可用于操作Set集合,也可以用于List和Queue集合.Collection接口里定义了如下操作元素的方法. bo ...

  5. < java.util >-- Iterator接口

    每一个集合都有自己的数据结构,都有特定的取出自己内部元素的方式.为了便于操作所有的容器,取出元素.将容器内部的取出方式按照一个统一的规则向外提供,这个规则就是Iterator接口. 也就说,只要通过该 ...

  6. Java API ——Collection集合类 & Iterator接口

    对象数组举例: 学生类: package itcast01; /** * Created by gao on 15-12-9. */ public class Student { private St ...

  7. 源码阅读—Iterator接口和LIstIterator接口

    在继续看ArrayList源码之前,先了解Iterator接口和ListIterator接口,下篇文章详细讲解ArrayList是如何实现它们的. 我们知道,接口只是一种规范,当继承接口并实现其中的方 ...

  8. Iterator接口(迭代器)

    目录 前言 原理 方法 异常 Iterator接口(迭代器) 前言 一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合框架,它是一个对象, ...

  9. 为链表数据结构实现iterator接口

    iterator作用 为所有的数据结构提供统一的访问方式. 接口对象 接口对象一共有3个方法,next()方法.return()方法.throw()方法. next() 必填 用于for..of迭代. ...

  10. Iterator 接口

    首先要从foreach说起,我们都知道对象,数组和对象可以被foreach语法遍历,数字和字符串却不行.其实除了数组和对象之外PHP内部还提供了一个 Iterator 接口,实现了Iterator接口 ...

随机推荐

  1. mysql(表类型的选择)

    1.查询mysql所支持的存储引擎 第一种方法:show engines \G

  2. Linux-软件包管理-脚本安装包

    打开网页: http://sourceforge.net/projects/webadmin/files/webmin/下载1.6.10软件包 下载并放到linux系统中 ls 查看当前目录下所有信息 ...

  3. 如何修改浏览器默认的alert样式?

    window.alert = function(str) { var shield = document.createElement("DIV"); shield.id = &qu ...

  4. 【iOS开发-25】UIDevice查看系统信息,从一个问题開始怎样高速找到自己想要的属性和方法并看懂它

    如果须要解决的问题:写代码时遇到一种情况,就是须要推断iOS版本号,可能低版本号和高版本号须要增减一些代码,此时.怎样推断iOS版本号? (1)第一步.当然度娘.输入"iOS 推断系统版本号 ...

  5. firefox因 HTTP 严格传输安全(HSTS)机制无法打开网页

    1.打开about:config 2.查找: security.enterprise_roots.enabled ,默认为false,改为true就可以了 3.吐槽,firefox太极端了,这是作死.

  6. Atitit.国际化中的日期与钱符号问题

    Atitit.国际化中的日期与钱符号问题 1. 用户名注册的问题 1 1.1. 不能限制用户名长度与特殊符号 1 2. 2.8月7号未必总写成8/7,有时也用7/8 2 3. 5.$未必总是指美元 3 ...

  7. Atitit.ALT+TAB没反应车and 点击任务栏程序闪烁但是不能切换

    Atitit.ALT+TAB没反应车and 点击任务栏程序闪烁但是不能切换 1. 可能你的Alt+Tab键被别人禁用了,试下下面的方法: 1 2. 为什么要禁用Alt+Tab 1 3. ALT+TAB ...

  8. UVA 146 ID Codes(下一个排列)

    C - ID Codes Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Statu ...

  9. 让低版本IE也能正常运行HTML5+CSS3网站的3种解决方案

    现在我们可以选择浏览器非常多,所以浏览器的环境也是种类繁多,同一个浏览器也是包含各种不同的版本,不同的版本之间的渲染方法也存在差异,,它们支持的 HTML5.CSS3 特性恐怕也不尽相同.这种情况于是 ...

  10. python学习笔记(4)--聊天记录处理

    说明: 1.把冒号和前面的名字去掉 2.男的台词放一个txt文件,女的台词放一个txt文件 3.遇到======就重新生成一个文件 record.txt: 婷婷:迪迪早啊! 迪迪:早啊! 婷婷:111 ...