Exemple d'utilisation d'un itérateur d'une interface prédéfinie PHP

coldplay.xixi
Libérer: 2023-04-09 08:06:01
avant
1839 Les gens l'ont consulté

Exemple d'utilisation d'un itérateur d'une interface prédéfinie PHP

L'exemple de cet article décrit l'utilisation de l'itérateur de l'interface prédéfinie PHP. Partagez-le avec tout le monde pour votre référence, comme suit :

Interface itérateur

Une interface qui peut itérer en interne via son propre itérateur ou classe externe.

Résumé de l'interface

Iterator extends Traversable { /* 方法 */ abstract public current ( void ) : mixed abstract public key ( void ) : scalar abstract public next ( void ) : void abstract public rewind ( void ) : void abstract public valid ( void ) : bool }
Copier après la connexion

Exemple :

position = 0; } /** * 返回当前元素 */ public function current() { var_dump(__METHOD__); return $this->array[$this->position]; } /** * 返回当前元素的键 * @return int */ public function key(): int { var_dump(__METHOD__); return $this->position; } /** * 将键移动到下一位 */ public function next(): void { var_dump(__METHOD__); ++$this->position; } /** * 判断键所在位置的元素是否存在 * @return bool */ public function valid(): bool { var_dump(__METHOD__); return isset($this->array[$this->position]); } } $it = new myIterator; foreach ($it as $key => $value) { var_dump($key, $value); echo "\n"; }
Copier après la connexion

Résultat de sortie :

chaîne 'myIterator::rewind' (longueur = 18 )
string 'myIterator::valid' (length=17)
string 'myIterator::current' (length=19)
string 'myIterator::key' (length=15)
int 0
string 'first_element' (length=13)
string 'myIterator::next' (length=16)
string 'myIterator::valid' (length=17)
string 'myIterator : :current' (length=19)
string 'myIterator::key' (length=15)
int 1
string 'second_element' (length=14)
string 'myIterator::next' (longueur=16)
chaîne 'myIterator::valid' (longueur=17)
chaîne 'myIterator::current' (longueur=19)
chaîne 'myIterator::key' (longueur=15)
int 2
chaîne 'last_element' (longueur=12)
chaîne 'myIterator::next' (longueur=16)
chaîne 'myIterator::valid' (longueur=17)

Les résultats montrent que lorsqu'une classe implémente l'interface Iterator et modifie l'ensemble de données de l'instance de classe, elle réinitialise d'abord la clé de l'ensemble de données, puis la recule progressivement, à chaque fois qu'elle renverra l'élément actuel et la clé actuelle.

Recommandations d'apprentissage associées :Programmation PHP de l'entrée à la maîtrise

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!

Étiquettes associées:
source:jb51.net
Déclaration de ce site Web
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
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!