Bonjour !
Comme dit dans le titre, je suis victime d'une incompréhension totale.

<?php
$a_nombres = array(1, 2, 3);
foreach ($a_nombres as $values)
    echo ')'.$values.'</br>';
foreach ($a_nombres as &$values)
{
    $values -= 1;
    echo '}'.$values.'</br>';
}
var_dump($a_nombres);
foreach ($a_nombres as $values)
    echo ']'.$values.'</br>';

var_dump($a_nombres);
?>

Résulte en:

Puis j'ai testé de remplacer la variable $values par $values2 dans le dernier foreach.
Cette fois si, c'est bien le résultat que j'attendais:

Avez vous une explication à cela ? L'utilisation de la référence est volontaire dans le deuxième foreach, elle me permet de modifier le tableau original.

C'est comme si que la variable $values perdurait en dehors de la boucle.

Merci ! ;)

1 réponse


Skx
Auteur
Réponse acceptée

J'ai finalement trouvé le problème, il faillais casser la référence après le deuxième foreach:

unset($values);

Merci aux personnes de la chatbox qui ont tentés de m'aider ! (Brandon-xprodeur, Glaived, Grafikart, etc)