Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung des Iteratormusters von PHP-Entwurfsmustern

Detaillierte Erläuterung des Iteratormusters von PHP-Entwurfsmustern

韦小宝
韦小宝Original
2017-11-15 10:36:411881Durchsuche

IteratormusterDurchläuft die internen Elemente eines Aggregatobjekts, ohne die Interna zu kennen. Im Vergleich zum herkömmlichen Programmiermodell kann Iteratormuster die Elemente der Durchquerung aller Operationen

Detaillierte Erläuterung des Iteratormusters von PHP-Entwurfsmustern

<?php

/*
 * 迭代器模式
 */
class All implements \Iterator
{
    protected $ids;
    protected $index;

    public function __construct($data)
    {
        $this->ids = $data;
    }

    public function current() //获取当前的元素
    {
        return $this->ids[$this->index];
    }

    public function next() //获取下一个元素
    {
        $this->index++;
    }

    public function valid() //验证当下是否还有下一个元素
    {
        return $this->index < count($this->ids);
    }

    public function rewind() //重置迭代器指针
    {
        $this->index = 0;
    }

    public function key() //迭代器指针的位置
    {
        return $this->index;
    }
}

$arr = [&#39;1&#39;, &#39;2&#39;, &#39;4&#39;]; //客户端
$users = new All($arr);
foreach ($users as $user) {
    var_dump($user);
}
Das Iteratormuster ist ein sehr häufig verwendetes Entwurfsmuster. Durch die Einführung von Iteratoren kann die Datendurchlauffunktion vom Aggregatobjekt getrennt werden, für das das Aggregatobjekt nur verantwortlich ist Das Speichern von Daten und das Durchlaufen der Daten wird durch Iteratoren vervollständigt

Verwandte Empfehlungen:

Interstellares PHP-Iteratormuster für Hegemonie

PHP-Variablenreferenz-PHP-Iteratormuster (Zitat der SPL-Implementierung)

Beobachtungen zu PHP-Entwurfsmustern Ausführliche Erklärung des Benutzermodus

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Iteratormusters von PHP-Entwurfsmustern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn