W3docs

next()

Apprenez comment PHP next() avance le pointeur interne d'un tableau, ce qu'elle retourne et comment elle fonctionne avec reset(), current() et prev().

La fonction PHP next()

Chaque tableau PHP possède un pointeur interne qui marque un élément comme l'élément « courant ». La fonction next() déplace ce pointeur d'une position vers l'avant et retourne la valeur sur laquelle il atterrit. Elle fait partie d'une petite famille de fonctions de pointeur — reset(), current(), prev() et end() — qui permettent de parcourir un tableau pas à pas sans écrire son propre compteur d'index. Ce guide explique précisément ce que retourne next(), comment elle modifie le pointeur et les cas limites qui surprennent souvent les développeurs.

Syntaxe et valeur de retour

next(array &$array): mixed

Trois détails découlent de cette signature :

  • Le tableau est passé par référence (&$array). next() ne vous renvoie pas un nouveau tableau — elle modifie le pointeur interne du tableau que vous lui passez.
  • Elle retourne la valeur de l'élément suivant, pas l'élément courant. Pour lire l'élément sous le pointeur sans le déplacer, utilisez current().
  • En fin de tableau, elle retourne false et positionne le pointeur après le dernier élément. Tous les appels suivants retournent également false.

Lorsqu'un script accède pour la première fois à un tableau, le pointeur est placé sur le premier élément. Ainsi, le tout premier appel à next() retourne déjà le deuxième élément — une source fréquente d'erreurs de décalage.

Un exemple de base avec next()

L'extrait ci-dessous lit le premier élément avec current(), puis avance deux fois. Le dernier appel dépasse la fin du tableau et retourne false :

php— editable, runs on the server

La sortie est :

apple
banana
cherry
bool(false)

Parcourir un tableau avec next()

Un schéma courant consiste à appeler d'abord reset() (pour s'assurer que le pointeur est au début), afficher le premier élément, puis boucler avec next() jusqu'à ce qu'elle retourne false :

php— editable, runs on the server

Ceci affiche :

red
green
blue

Notez la comparaison stricte !== false — la prochaine section explique pourquoi une vérification souple est dangereuse.

Le piège des valeurs fausses

next() retourne false en fin de tableau, mais elle retourne aussi false lorsque la valeur réelle d'un élément est false, 0, "" ou null. Une condition souple comme while (next($array)) s'arrête donc dès qu'elle rencontre une de ces valeurs :

php— editable, runs on the server

Parce que next() retourne 0 pour le deuxième élément, le corps de la boucle ne s'exécute jamais — la sortie est simplement :

done

Pour les tableaux susceptibles de contenir des valeurs fausses, préférez foreach (qui ignore entièrement le pointeur interne) ou vérifiez key(), qui retourne null uniquement en fin réelle de tableau.

Comment next() se rapporte aux autres fonctions de pointeur

next() fonctionne rarement seule. Elle se combine avec reset(), current(), prev(), end() et key() pour vous donner un contrôle manuel complet sur le curseur d'un tableau :

FonctionDéplace le pointeur ?Retourne
current()NonL'élément sous le pointeur
next()D'un pas en avantLe nouvel élément courant (ou false en fin de tableau)
prev()D'un pas en arrièreLe nouvel élément courant (ou false avant le début)
reset()Vers le premierLe premier élément
end()Vers le dernierLe dernier élément
key()NonLa clé de l'élément courant (ou null après la fin)

L'exemple ci-dessous utilise end() et prev() conjointement avec next() pour montrer comment le pointeur peut se déplacer dans les deux sens lors d'un même parcours :

php— editable, runs on the server

Sortie :

30
20
30
10

Quand utiliser next()

Pour une itération simple sur tous les éléments, une boucle foreach est plus claire et plus sûre — elle ne bute jamais sur des valeurs fausses. Recourez à next() uniquement lorsque vous avez réellement besoin d'un contrôle explicite, pas à pas, de la position du pointeur, par exemple pour regarder en avant tout en étant encore en milieu de boucle.

Conclusion

La fonction next() avance le pointeur interne d'un tableau d'un pas vers l'avant et retourne la valeur sur laquelle il atterrit, renvoyant false une fois qu'il dépasse le dernier élément. Parce qu'elle dépend du pointeur interne et signale la fin avec false, elle fonctionne de pair avec reset(), current() et prev() — pensez simplement au piège des valeurs fausses, où une condition de boucle souple s'arrête trop tôt. Pour une itération ordinaire, préférez foreach ; choisissez next() lorsque vous avez besoin d'un contrôle précis sur le curseur du tableau.

Practice

Pratique
Quel est l'usage correct de la fonction 'next' en PHP ?
Quel est l'usage correct de la fonction 'next' en PHP ?
Was this page helpful?