[Tableaux] Portée d'une variable ?
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:
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:
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:
1 2 3
|
foreach($arr as $value)
echo $value." "; |
cela donne:
8O
Après quelques essaies il s'avère qu'en changeant le nom de
la variable :
Code:
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