PHP Pass by Reference dans foreach
Comprendre Pass by Reference
PHP a deux variables types : variables normales et variables de référence. L'attribution d'une référence d'une variable à une autre variable crée une variable de référence. La variable devient un alias pour la variable référencée.
Passage par référence dans les boucles Foreach
Dans une boucle foreach, la syntaxe foreach ($a as &$v) transmet une référence à chaque élément du tableau à la variable $v. Cela signifie que toute modification apportée à $v à l'intérieur de la boucle modifiera également l'élément du tableau d'origine.
Explication de l'extrait de code
$a = array ('zero','one','two', 'three'); foreach ($a as &$v) { } foreach ($a as $v) { echo $v.PHP_EOL; }
Dans ce code :
zero one two two
Raison de la sortie
Après la première boucle foreach, l'élément $ a[3] devient une variable de référence puisqu'elle est référencée par $v. Par conséquent, lorsqu'une nouvelle valeur est attribuée à $v dans les itérations suivantes, $a[3] est également modifié.
Puisque $a[3] est désormais une variable de référence, changeant sa valeur dans la deuxième boucle foreach affecte toutes les autres itérations de la boucle. Par conséquent, la dernière itération imprime « deux » au lieu de « trois ».
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!