所以我放松了所有的放松和嘘声,翻新我的设计模式知识,一切顺利和花花公子,等待周末肾上腺素开始。我的生活无法更顺畅。接下来你知道的事情......我得到了生命日的最大认识。
因为我是本地PHP
发言人。不用脑子,我正在经历this official DOC。
因此,通过评论中的各种Rube Goldberg-ish示例,该模式继续创建将数组传递给它们的各种对象,但最终只使用foreach()
或while()
迭代项目。我的问题是在这个模式适合的宏观方案中的位置,或者我们最好只是首先迭代array
本身或一如既往......
我错过了什么吗?
示例:
<?php
class myIterator implements Iterator
{
private
$_array = array();
public function __construct(array $array)
{
$this->_array = $array;
}
public function rewind()
{
reset($this->_array);
}
public function current()
{
return current($this->_array);
}
public function key()
{
return key($this->_array);
}
public function next()
{
next($this->_array);
}
public function valid()
{
return $this->key() !== null;
}
}
$it = new myIterator(array('foo_1' => 'bar_1','foo_2' => 'bar_2'));
//example 1 : foreach
foreach($it as $key => $value)
{
var_dump($key, $value);
}
//example 2 : while
$it -> rewind();
while($it->valid())
{
var_dump($it->key(), $it->current());
$it->next();
}
//example 3 : for
for($it->rewind();$it->valid();$it->next())
{
var_dump($it->key(), $it->current());
}
?>