我想使用与PHP迭代器的关联数组接着迭代方法:用于关联数组
http://php.net/manual/en/class.iterator.php
可以吗?
我定义了这些方法:
public function rewind(){
reset($this->_arr);
$this->_position = key($this->_arr);
}
public function current(){
return $this->_arr[$this->_position];
}
public function key(){
return $this->_position;
}
public function next(){
++$this->_position;
}
public function valid(){
return isset($this->_arr[$this->_position]);
}
问题是它不能正常循环。我只得到一个元素。
我认为这是因为next()方法中的++$this->_position
代码没有任何效果,因为_position是一个字符串(关联数组的关键字)。
那么我该如何去这种类型的数组的下一个元素?
出于好奇功能,你为什么不只是使用[ ArrayIterator(http://us.php.net/arrayiterator)? – nickb
可以请你展示更多你的代码吗?那将是a)你说'class XYZ实现Iterator'的部分b)你尝试使用它的部分。 – Niko
“我定义了这些方法” - 它被称为“按原样复制粘贴”;-) – zerkms