par
Arrays » 21 mai 2009, 16:22
Bonjour, j'ai un petit soucis de compréhension, en espérant que quelqu'un puisse m'aider à y voir plus clair.
Voila le code problématique :
<?php
$a = array(1,2,3,4);
foreach($a as &$v){
}
foreach($a as $v){
}
print_r($a);
?>
J'aimerais comprendre exactement pourquoi la dernière clef contient la valeur '3'.
La première boucle ne fait pas de modification dans le tableau. Toutefois, au moment où la boucle est terminée, $v est en fait une référence à $a[3]. Pas de problème de ce coté là. Ensuite dès que la seconde boucle commence, $v est maintenant affecté à chaque valeur de chaque élement du tableau. Cependant, $v est déjà reférencé à $a[3], et c'est ici que je ne comprends plus ce qu'il se passe. Dans l'attente de vos explications, bonne journée.
Bonjour, j'ai un petit soucis de compréhension, en espérant que quelqu'un puisse m'aider à y voir plus clair.
Voila le code problématique :
[php]
<?php
$a = array(1,2,3,4);
foreach($a as &$v){
}
foreach($a as $v){
}
print_r($a);
?>
[/php]
J'aimerais comprendre exactement pourquoi la dernière clef contient la valeur '3'.
La première boucle ne fait pas de modification dans le tableau. Toutefois, au moment où la boucle est terminée, $v est en fait une référence à $a[3]. Pas de problème de ce coté là. Ensuite dès que la seconde boucle commence, $v est maintenant affecté à chaque valeur de chaque élement du tableau. Cependant, $v est déjà reférencé à $a[3], et c'est ici que je ne comprends plus ce qu'il se passe. Dans l'attente de vos explications, bonne journée.