Maison >développement back-end >Problème PHP >itérateur php qu'est-ce que cela signifie

itérateur php qu'est-ce que cela signifie

藏色散人
藏色散人original
2021-10-15 10:37:051932parcourir

l'itérateur php est un modèle de conception PHP, qui fait référence à une interface qui peut itérer son propre itérateur ou classe externe en interne ; le modèle d'itérateur peut parcourir les éléments internes d'un objet agrégé sans connaître l'implémentation interne.

itérateur php qu'est-ce que cela signifie

L'environnement d'exploitation de cet article : système windows7, version PHP7.1, ordinateur DELL G3

itérateur php Qu'est-ce que cela signifie ?

Mode itérateur PHP

Iterator : La classe hérite de l'interface Iterator de PHP et effectue des opérations par lots.

1. Le modèle itérateur parcourt les éléments internes d'un objet agrégé sans connaître l'implémentation interne.

2. Par rapport aux modèles de programmation traditionnels, le modèle itérateur peut masquer les opérations nécessaires pour parcourir les éléments.

Itérateur d'interface

current() Renvoie l'élément actuel

key() Renvoie la clé de l'élément actuel

next() Avance vers l'élément suivant

rewind() Retourne au premier élément de l'itérateur

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();
}

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

Apprentissage recommandé : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn