Maison >développement back-end >tutoriel php >La référence Foreach transmet l'adresse en PHP

La référence Foreach transmet l'adresse en PHP

小云云
小云云original
2018-03-22 14:14:503218parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn