8791 sujets

Développement web côté serveur, CMS

Bonjour,


Je viens de me rendre compte d'une chose, c'est peut-être une question bête mais, dans un foreach il n'est pas possible de modifier une valeur de l'array en faisant :

<?php

foreach ($dossier[1] as $nom_dir)
{
          echo $nom_dir;
          $dossier[1][4] = "TRUC";
}


?>


En faisant ce code je me rend compte que l'array n'est pas du tout affecté et qu'il garde ses valeurs, aucune apparition du texte "TRUC".... ce n'est que maintenant que je m'en rend compte....

Seulement je voudrais savoir pourquoi il ne change pas la valeur finalement ça me parait pas logique...

Merci
Salut Crousti2,

Arrête le crack (passe à quelques chose de plus doux).
La valeur de ton tableau est correctement affectée, la fonction var_dump() appelée sur le tableau après le foreach le montre bien...
En revanche tu ne pourrais pas utiliser la variable $non_dir pour modifier les éléments de ton tableau. Cela serait possible en passant $nom_dir par référence de la façon suivante :
foreach ($dossier[1] as &$nom_dir) {if ($nom_dir == 'pomme') { $nom_dir .= 'ier'};}, de cette façon tu transforme ton fruit en arbre (et cela même après le foreach...). Compris ?

@++
Merci à vous c'est juste ce que je voulais savoir, il fait une copie....

Oui j'avais remarqué avec var_dump() que la valeur était modifiée mais ce que je ne comprenais pas c'est pourquoi elle ne l'était pas dans le foreach...


Merci à vous Smiley cligne