Maison > développement back-end > tutoriel php > Que se passe-t-il lors de l'utilisation de variables de référence dans une boucle PHP Foreach ?

Que se passe-t-il lors de l'utilisation de variables de référence dans une boucle PHP Foreach ?

Linda Hamilton
Libérer: 2024-12-13 22:32:14
original
923 Les gens l'ont consulté

What Happens When Using Reference Variables in a PHP Foreach Loop?

Variable de référence en PHP Foreach

Dans le code donné, le problème survient en raison de l'utilisation de variables de référence dans la première boucle foreach. Voici une explication :

$a = ['zero', 'one', 'two', 'three'];

foreach ($a as &$v) {
    // $v is a reference to the current array element
}

foreach ($a as $v) {
    echo $v . PHP_EOL;
}
Copier après la connexion

En PHP, les variables peuvent être des variables normales ou de référence. Les variables normales contiennent la valeur des données, tandis que les variables de référence pointent vers l'emplacement des données.

Dans la première boucle, nous avons $v = &$a[0]; par conséquent, $v devient une référence au premier élément du tableau, « zéro ». Cela signifie que toute modification apportée à $v sera reflétée dans $a[0], et vice versa.

Maintenant, dans la deuxième boucle, nous avons $v = 'two'. Puisque $v est une variable de référence, cette opération modifie également l'élément correspondant dans le tableau, $a[3].

Enfin, dans la deuxième boucle foreach, lorsque nous parcourons chaque élément, nous voyons le résultat :

  • 'zéro' - 'deux' (l'élément 0 est toujours 'zéro', mais $a[3] est maintenant 'deux')
  • 'un' - 'deux' (l'élément 1 reste 'un', mais $a[3] est toujours 'deux')
  • 'deux' - 'deux' (L'élément 2 est mis à jour en "deux", et $a[3] est également "deux")
  • "deux" - "deux" (l'élément 3 était déjà 'deux', et $a[3] reste 'deux')

Cela démontre l'impact de l'utilisation de variables de référence dans une boucle foreach, conduisant à la répétition de la dernière valeur mise à jour dans la première boucle.

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!

source:php.cn
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 articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal