PHP:迭代器(Iterator)接口实现

 
<?php
class MyIterator implements
Iterator
{
     private
$var
= array();

     public function
__construct($array
)
     {
         if (
is_array($array
)) {
            
$this->var = $array
;
         }
     }

     public function
rewind
() {
         echo
"rewindingn"
;
        
reset($this->var
);
     }

     public function
current
() {
        
$var = current($this->var
);
         echo
"current: $varn"
;
         return
$var
;
     }

     public function
key
() {
        
$var = key($this->var
);
         echo
"key: $varn"
;
         return
$var
;
     }

     public function
next
() {
        
$var = next($this->var
);
         echo
"next: $varn"
;
         return
$var
;
     }

     public function
valid
() {
        
$var = $this->current() !== false
;
         echo
"valid: {$var}n"
;
         return
$var
;
     }
}

$values = array(1,2,3
);
$it = new MyIterator($values
);

foreach (
$it as $a => $b
) {
     print
"$a: $bn"
;
}
?>

The above example will output:

 
 
rewinding
current: 1
valid: 1
current: 1
key: 0
0: 1
next: 2
current: 2
valid: 1
current: 2
key: 1
1: 2
next: 3
current: 3
valid: 1
current: 3
key: 2
2: 3
next:
current:
valid:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值