Heim >Backend-Entwicklung >PHP-Problem >PHP-Iterator, was bedeutet das?

PHP-Iterator, was bedeutet das?

藏色散人
藏色散人Original
2021-10-15 10:37:051929Durchsuche

php-Iterator ist ein PHP-Entwurfsmuster, das sich auf eine Schnittstelle bezieht, die ihren eigenen externen Iterator oder ihre eigene Klasse intern durchlaufen kann; das Iteratormuster kann die internen Elemente eines Aggregatobjekts durchlaufen, ohne die interne Implementierung zu kennen.

PHP-Iterator, was bedeutet das?

Die Betriebsumgebung dieses Artikels: Windows7-System, PHP7.1-Version, DELL G3-Computer

php-Iterator Was bedeutet das?

PHP-Iteratormodus

Iterator: Die Klasse erbt die Iterator-Schnittstelle von PHP und führt Stapeloperationen aus.

1. Das Iteratormuster durchläuft die internen Elemente eines Aggregatobjekts, ohne die interne Implementierung zu kennen.

2. Im Vergleich zu herkömmlichen Programmiermustern kann das Iteratormuster die zum Durchlaufen von Elementen erforderlichen Operationen verbergen.

Interface Iterator

current() Gibt das aktuelle Element zurück

key() Gibt den Schlüssel des aktuellen Elements zurück

next() Geht vorwärts zum nächsten Element

rewind() Gibt zum ersten Element des Iterators zurück

class AllUser implements \Iterator
{
    protected $index = 0;
    protected $data = [];
    public function __construct()
    {
        $link = mysqli_connect('192.168.0.91', 'root', '123', 'xxx');
        $rec = mysqli_query($link, 'select id from doc_admin');
        $this->data = mysqli_fetch_all($rec, MYSQLI_ASSOC);
    }
    //1 重置迭代器
    public function rewind()
    {
        $this->index = 0;
    }
xxx
    //2 验证迭代器是否有数据
    public function valid()
    {
        return $this->index < count($this->data);
    }
    //3 获取当前内容
    public function current()
    {
        $id = $this->data[$this->index];
        return User::find($id);
    }
    //4 移动key到下一个
    public function next()
    {
        return $this->index++;
    }
    //5 迭代器位置key
    public function key()
    {
        return $this->index;
    }
}
//实现迭代遍历用户表
$users = new AllUser();
//可实时修改
foreach ($users as $user){
    $user->add_time = time();
    $user->save();
}

Iterator-Schnittstelle: https://www.php.net/manual/zh/class.iterator.php

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonPHP-Iterator, was bedeutet das?. 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