Iterator(迭代器)接口 --对象循环遍历

时间:2023-03-10 07:29:52
Iterator(迭代器)接口 --对象循环遍历
<?php
class MyIterator implements Iterator
{
private $var = array(); public function __construct ( $array )
{
if ( is_array ( $array ))
{
$this -> var = $array ;
}
}
//返回到迭代器的第一个元素
public function rewind ()
{
echo "rewinding返回到迭代器的第一个元素\n" ;
reset ( $this -> var );
} //返回当前元素
public function current ()
{
$var = current ( $this -> var );
echo "current返回当前元素: $var \n" ;
return $var ;
}
//返回当前元素的键
public function key ()
{
$var = key ( $this -> var );
echo "key返回当前元素的键: $var \n" ;
return $var ;
}
//向前移动到下一个元素
public function next ()
{
$var = next ( $this -> var );
echo "next向前移动到下一个元素: $var \n" ;
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 : $b \n" ;
}
?>