第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP foreach()里使用& 引用賦值

PHP foreach()里使用& 引用賦值

PHP
收到一只叮咚 2019-03-18 16:53:22
<?php $data = ['a','b','c']; foreach ($data as &$v) { } foreach ($data as $v) { } unset($v); var_dump($data); 這段代碼的結(jié)果如何推導(dǎo)?是什么原理?
查看完整描述

4 回答

?
絕地?zé)o雙

TA貢獻(xiàn)1946條經(jīng)驗 獲得超4個贊

好像以前見過類似的問題...

<?php
/* 第一次遍歷 */
$v = &$data[0];
$v = &$data[1];
$v = &$data[2];

// 第一次遍歷完成后, 這個時候 $v = &$data[2]


/* 第二輪遍歷 */
// 因為$v等價于$data[2],相當(dāng)于$data[2] = $data[0],把$data[2]賦值為a(即$data[0]); 此時數(shù)組array = ['a','b','a'];
$v = $data[0]; 

// 因為$v等價于$data[2],相當(dāng)于$data[2] = $data[1],把$data[2]賦值為b(即$data[1]); 此時數(shù)組array = ['a','b','b'];
$v = $data[1]; 

// 因為$v等價于$data[2],相當(dāng)于$data[2] = $data[2],即賦值為其本身,而此時已經(jīng)被上一次賦值為b; 此時數(shù)組array = ['a','b','b'];
$v = $data[2]; 

// 第二次遍歷完后, array = ['a','b','b']

unset($v); // unset($v)釋放掉臨時的引用

var_dump($data);

最后輸出:

array(3) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "b"
}
查看完整回答
反對 回復(fù) 2019-03-18
?
森林海

TA貢獻(xiàn)2011條經(jīng)驗 獲得超2個贊

這個問題好老啊,不過上面的大神解釋的很詳細(xì)。我對傳引用的理解就是引用和賦值的變量共用了一塊地址空間

查看完整回答
反對 回復(fù) 2019-03-18
  • 4 回答
  • 0 關(guān)注
  • 669 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號