Principe de fonctionnement
1. Avant la première itération, exécutez la méthode iterator::rewind().
S'exécute une seule fois, renvoie le premier élément de l'itérateur, mais la méthode n'a pas de valeur de retour
2. Vérifiez si le premier élément est valide.
Les méthodes d'authentification peuvent être personnalisées. Si la valeur de retour est vraie, l'exécution continue ; si la valeur de retour est fausse, l'itération se termine.
3. foreach continue d'appeler Iterator.
Renvoie la clé et la valeur de la fonctionnalité spécifiée.
4. Le corps de la méthode foreach
var_dump ($ clé, $ valeur)
5. Après chaque itération, appelez l'Iterator pour déterminer l'élément suivant et répétez la deuxième étape.
Exemple
string(18) "myIterator::rewind" //Appelle la méthode de rembobinage avant le début de l'itération, retourne au premier élément de l'itérateur et exécute $this->position = 1; string(17) "myIterator::valid" //Vérifie si l'élément actuel $this->array[1] est valide et continue l'exécution s'il est valide ; string(19) "myIterator::current" // Renvoie la valeur correspondant à l'élément courant $this->array[0]='firstelement' string(15) "myIterator::key" // Renvoie la clé de l'élément courant $this->position = 1 int(1) //var_dump($clé) string(12) "secondelement" //var_dump($valeur) string(16) "myIterator::next" // Avancer vers l'élément suivant ++$this->position=2 string(17) "myIterator::valid" //Vérifie si l'élément actuel $this->array[2] est valide et continue l'exécution s'il est valide ; string(19) "myIterator::current" //Répétez les étapes précédentes string(15) "myIterator::key" //Répétez les étapes précédentes int(2) //Répétez les étapes précédentes string(11) "lastelement" //Répétez les étapes précédentes string(16) "myIterator::next" // Avancer vers l'élément suivant ++$this->position=3 string(17) "myIterator::valid" //Vérifie si l'élément actuel $this->array[3] est valide, quitte le parcours s'il n'est pas valide
Ce qui précède est une analyse du principe de fonctionnement de l'itérateur PHP, j'espère qu'il sera utile à tout le monde.