<?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. JEECG技术总结

    1.用户数据迁移时,必须在表t_s_base_user和t_s_user中都插入数据才会在页面显示.2.执行sql语句: String sql = "select count(id) fro ...

  2. unity, StartCoroutine and StopCoroutine

    startCoroutine("func",1.0f)可以用stopCoroutine("func")来停. startCoroutine(func(1.0f) ...

  3. 页面局部加载,适合Ajax Loading场景(Demo整理)

    效果图: 完整demo下载

  4. jquery操作复选框(checkbox)十二技巧

    jquery操作复选框(checkbox)的12个小技巧. 1.获取单个checkbox选中项(三种写法)$("input:checkbox:checked").val()或者$( ...

  5. linux 清内存

    注意:首先我们需要使用sync指令,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node.已延迟的块 I/O 和读写映射文件.否则在释放缓存的过程中,可能会丢失未保存的文件. 的值可以为0~3 ...

  6. android.animation(3) - ValueAnimator-ofObject(TypeEvaluator evaluator, Object... values)

    一.ofObject()概述 前面我们讲了ofInt()和ofFloat()来定义动画,但ofInt()只能传入Integer类型的值,而ofFloat()则只能传入Float类型的值.那如果我们需要 ...

  7. Tomcat7中开启gzip压缩功能的配置方法

    使用gzip压缩可以减少数据传输大小,加快网页加载速度.很多大站都开启了gzip压缩,不过也有很多网站并没有开启gzip压缩,上次看了一篇文章说开启gzip压缩后对搜索引擎不友好,但从带宽和流量的角度 ...

  8. UNION types numeric and text cannot be matched

    NULL ::NUMERIC 有时候会遇到这个问题,那是因为几个SQL组合在一起的时候,同一个字段的值,出来了不同类型的时候,这种时候就需要进行转型的处理了.

  9. [system]c/c++调用cat命令

    因为cat并不是一个带返回的命令,而是输出到标准输出.所以使用system("cat /sys/class/gpio/...."); 得不到我们想要的结果. 下面的/bin/ls同 ...

  10. _BV()

    #define _BV(bit) (1 << (bit)) _BV()是把1左移N位的函数._BV(7)相当于(1<<7) 常用于位的置位或清零 示例解析: PC7=7; PO ...