Так что я откинулся на спинку кресла, весь расслабленный и дерьмовый, восстанавливая свои знания о шаблонах проектирования, все идет хорошо и прекрасно, пока я жду выходного адреналина. Моя жизнь не может быть более гладкой. Следующее, что вы знаете... Я получаю самое большое осознание дня моей жизни.
Зачем нам нужен паттерн Iterator? Или лучше сформулировать как
Нужен ли нам шаблон Iterator в наши дни?
Так как я носитель языка PHP
. Легко, я просматривал официальный документ DOC.
Таким образом, через различные примеры Руба Голдберга в комментариях шаблон продолжает создавать различные объекты, передавая им массив, только для того, чтобы в конечном итоге перебирать элементы, используя 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());
}
?>
thing
без итератора? - person Kritner   schedule 16.12.2016mollycoddling
этот ответ, отредактировав его, его формулировка точно передает мои эмоции.!!! - person Mohd Abdul Mujib   schedule 16.12.2016