Comment modifier la valeur de php foreach : 1. Créez un exemple de fichier PHP ; 2. Modifiez-le via "foreach($array as $k => $v){$v = 1;}".
L'environnement d'exploitation de cet article : système windows7, version PHP7.1, ordinateur DELL G3
Comment modifier la valeur de php foreach ?
Le problème de l'utilisation de foreach pour modifier la valeur d'un tableau
Tournez-vous vers la page foreach de la documentation PHP et écrivez ceci :
"La structure syntaxique foreach fournit un moyen simple de parcourir le tableau. foreach peut ne doit être appliqué qu'aux tableaux et aux objets, si vous essayez de l'appliquer à des variables d'autres types de données ou à des variables non initialisées, un message d'erreur sera émis. Il existe deux syntaxes :
foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement
Le premier format parcourt le tableau array_expression donné. temps dans la boucle, la valeur de la cellule actuelle est utilisée et le pointeur à l'intérieur du tableau avance d'un pas (la cellule suivante sera donc obtenue dans la boucle suivante)
Le deuxième format fait la même chose. , sauf que le nom de la clé de la cellule actuelle est également mis à jour à chaque fois. La variable $key est assignée dans la boucle "
Alors" le premier format parcourt le tableau array_expression donné dans chaque boucle. la cellule actuelle est affectée à $value et le pointeur à l'intérieur du tableau avance d'un pas (l'unité suivante sera donc obtenue dans la boucle suivante) "Qu'est-ce que cela signifie ? Cela signifie que l'utilisation de foreach pour parcourir un tableau opère sur une copie du tableau spécifié, et non sur le tableau lui-même. Tout comme avoir un clone de vous, peu importe la façon dont les autres vous frappent ou lui donnent des coups de pied, cela n'aura aucun effet sur vous.
Par exemple :
foreach($array as $k => $v){ $v = 1; }
Une telle méthode de modification ne modifie pas $array lui-même, mais modifie un tableau qu'il copie. Bien que ce soit le même, ce n'est pas $array. Elle n'a donc aucun impact sur $array.
Alors que faire ? Pour ce faire :
foreach($array as $k => $v){ $array[$k] = 1; }
Bien que $k et $v soient également copiés, la valeur du $k copié est toujours la même que la valeur de $k dans le tableau d'origine, donc cela réussira.
Il existe également une méthode plus avancée : vous pouvez facilement modifier les éléments du tableau en ajoutant & avant $v. Cette méthode attribue par référence plutôt que de copier une valeur. Par exemple :
foreach($array as &$v){ $v = 1; } unset($v); // 最后取消掉引用
Ce sera un succès.
Apprentissage recommandé : "Tutoriel vidéo PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!