Avatar ·

Comment fonctionne réellement foreach en PHP ? Décortiquons la copie et les références

Bonjour à tous ! J'ai commencé à apprendre PHP et j'ai rencontré un comportement très étrange de la boucle `foreach`. J'ai écrit un code simple, mais les résultats m'ont dérouté. ```php 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) // Je m'attendais à ce que toutes les valeurs soient doublées ! ``` Je pensais que `$value` était une référence à l'élément du tableau, mais il s'est avéré que c'est une copie. Bon, alors j'ai essayé d'utiliser `&` : ```php 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 ) — ça marche ! ``` Mais ensuite j'ai lu que c'est dangereux à faire, car `$value` reste une référence au dernier élément après la boucle. Et j'ai aussi entendu parler de "pointeurs internes de tableau" et du fait que `foreach` ne fonctionne pas aussi simplement qu'il n'y paraît. Quelqu'un pourrait-il expliquer comment `foreach` traite les