Maison >développement back-end >tutoriel php >Explication détaillée du modèle d'itérateur des modèles de conception PHP

Explication détaillée du modèle d'itérateur des modèles de conception PHP

韦小宝
韦小宝original
2017-11-15 10:36:411908parcourir

Modèle d'itérateurParcourt les éléments internes d'un objet agrégé sans connaître les éléments internes. Par rapport au modèle de programmation traditionnel, le Modèle d'itérateur peut masquer les éléments du parcours Toutes les opérations

Explication détaillée du modèle ditérateur des modèles de conception PHP

<?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);
}
Le modèle d'itérateur est un modèle de conception très fréquemment utilisé. En introduisant des itérateurs, la fonction de parcours de données peut être séparée de l'objet d'agrégation, l'objet d'agrégation est uniquement responsable de. le stockage des données et leur parcours sont effectués par des itérateurs

Recommandations associées :

Modèle d'itérateur PHP interstellaire pour l'hégémonie

Référence de variable PHP Modèle d'itérateur PHP (citant l'implémentation SPL)

Observations sur les modèles de conception PHP Explication détaillée du mode utilisateur

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