Cet article partage principalement avec vous l'adresse de transfert de référence foreach en PHP. Comprendre ce problème nécessite trois points de connaissances. J'espère que cela pourra aider tout le monde.
1 Affectation normale et affectation de référence en php
Le nom de la variable est stocké dans la pile mémoire, qui pointe vers l'adresse de la mémoire spécifique dans le tas. Recherchez la mémoire dans le tas. le nom de la variable ;
Valeur normale passant, après avoir passé la valeur, ce seront des noms d'adresse différents, pointant vers différentes entités de mémoire
Passage de référence, après avoir passé la référence, ce sera différent ; noms d'adresses, mais ils pointent tous vers la même entité mémoire ;Changez l'un d'eux, et l'autre sera également modifié ;
C'est probablement la relation pour plus de détails. , vous pouvez consulter ceci https://www.cnblogs.com/mushan/p /4330386.html
2 Portée des variables
Les variables définies en dehors de toutes les fonctions ont la portée globale ; les variables définies à l'intérieur d'une fonction sont utilisées dans la portée locale. Les variables globales sont accessibles depuis n'importe où dans le script, mais pour accéder aux variables globales dans une fonction, utilisez le mot-clé global. Les variables locales ne sont accessibles qu'à l'intérieur de la fonction.
3 foreach $arr = array(1,2,3); foreach($arr as &$v){} $v 变量未销毁 $arr[2] 与 $v保持索引关系(数组组后一个元素) foreach ($arr as $v){} $v 每次获得新值 $arr=array(1,2,&$v); $v=1 数组为 array(1,2,1); $arr=array(1,2,&$v); $v=2 数组为 array(1,2,2); 第三次遍历数组为 array(1,2,2); 所以结果为 array(1,2,2);
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!