Bonjour,

J'ai repris l'exemple du manuel php qui modifie les valeurs
d'un tableau durant un foreach en passant la référence du
tableau (&), ce qui permet de travailler sur le tableau
lui-même et non pas sur sa copie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
$arr = array(1, 2, 3, 4);
 
foreach($arr as &$value)
  $value = $value * 2;
avec un print_r($arr) j'ai bien les résultats attendus:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 )
mais là où ça me perturbe c'est lorsque je liste le tableau
avec un foreach:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
foreach($arr as $value) 
    echo $value." ";
cela donne:

Après quelques essaies il s'avère qu'en changeant le nom de
la variable :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
foreach($arr as $val) 
    echo $val." ";
ça fonctionne.

Ce que je ne comprends plus c'est la portée d'une variable en PHP.
Normalement $value n'est accessible que dans le 1er bloc foreach non ?
Donc si je nomme ma variable $value dans le 2eme foreach il ne
devrait pas y avoir de pb.

Quelqu'un pourrait m'éclairer ?

Merci