Heim  >  Artikel  >  Backend-Entwicklung  >  Foreach-Referenz übergibt Adresse in PHP

Foreach-Referenz übergibt Adresse in PHP

小云云
小云云Original
2018-03-22 14:14:503180Durchsuche

Dieser Artikel teilt Ihnen hauptsächlich die foreach-Referenzübertragungsadresse in PHP mit. Um dieses Problem zu verstehen, sind drei Kenntnisse erforderlich.

1 Normale Zuweisung und Referenzzuweisung in PHP

Der Variablenname wird im Speicherstapel gespeichert, der auf die Adresse des spezifischen Speichers im Heap verweist. Finden Sie den Speicher im Heap der Variablenname;

Normale Wertübergabe, nachdem der Wert übergeben wurde, ist es ein anderer Adressname, der auf eine andere Speicherentität zeigt

Referenzübergabe als Wert, nachdem die Referenz übergeben wurde , es ist ein anderer Adressname, aber sie verweisen alle auf dieselbe Speicherentität. ;Ändern Sie einen von ihnen, und der andere wird ebenfalls geändert;

Das ist wahrscheinlich die Beziehung. Weitere Informationen finden Sie unter https://www.cnblogs.com/mushan/p /4330386.html


2 Geltungsbereich von Variablen

Variablen, die außerhalb aller Funktionen definiert sind, haben den globalen Gültigkeitsbereich. Variablen, die innerhalb einer Funktion definiert sind, werden im lokalen Gültigkeitsbereich verwendet. Auf globale Variablen kann von überall im Skript aus zugegriffen werden. Um jedoch innerhalb einer Funktion auf globale Variablen zuzugreifen, verwenden Sie das Schlüsselwort global. Auf lokale Variablen kann nur innerhalb der Funktion zugegriffen werden.

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);

Das obige ist der detaillierte Inhalt vonForeach-Referenz übergibt Adresse in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn