【发布时间】:2011-07-16 10:46:57
【问题描述】:
谁能解释什么是对象迭代以及这段代码是如何工作的?
class MyIterator implements Iterator{
private $var = array();
public function __construct($array){
if (is_array($array)) {
$this->var = $array;
}
}
public function rewind() {
echo "rewinding
";
reset($this->var);
}
public function key() {
$var = key($this->var);
echo "key: $var
";
return $var;
}
public function next() {
$var = next($this->var);
echo "next: $var
";
return $var;
}
public function valid() {
$var = $this->current() !== false;
echo "valid: {$var}
";
return $var;
}
public function current() {
$var = current($this->var);
echo "current: $var
";
return $var;
}
}
$values = array(1,2,3);
$it = new MyIterator($values);
foreach ($it as $a => $b) {
print "$a: $b
";
}
【问题讨论】:
-
好问题,代码来自官方 php.net 手册Object iteration,我也不明白。作者不想解释它的作用和原因。