Assignations par référence
Posté : 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 :
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.
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.