日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
php循環(huán)引用-創(chuàng)新互聯(lián)

昨天遇到了一個(gè)引用的問(wèn)題
php 循環(huán)引用
結(jié)果是什么,第一時(shí)間我也是想當(dāng)然的回答為[1,2,3]

創(chuàng)新互聯(lián)建站主營(yíng)陸河網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開(kāi)發(fā),陸河h5微信小程序開(kāi)發(fā)搭建,陸河網(wǎng)站營(yíng)銷推廣歡迎陸河等地區(qū)企業(yè)咨詢

但是實(shí)際的結(jié)果卻讓我大跌眼鏡 正確的結(jié)果為[2,3,3]
php 循環(huán)引用
經(jīng)過(guò)我一番思考和討論 我大概分析了其運(yùn)行的流程和為什么會(huì)是[2,3,3]這個(gè)結(jié)果
首先這個(gè)引用是兩個(gè)或多個(gè)變量指向同一個(gè)內(nèi)存地址如下圖
php 循環(huán)引用
$a = 5;
$b = &$a;
這樣他們便指向同一個(gè)內(nèi)存地址不管你改變$a還是$b得值,另外一個(gè)值都會(huì)跟著改變
現(xiàn)在讓我回到那個(gè)循環(huán)

$arr = [1,2,3];
foreach ($arr as $key => $value) {
$value = &$arr[$key];
print_r($arr);
}

從代碼可以看出$value指向了數(shù)組中每個(gè)元素得地址,如果$value得值發(fā)生了變化即數(shù)組中得值也會(huì)變化

第一次循環(huán)
$keyt=0 $value = 1 1 = $arr[0] 此時(shí)$value這個(gè)變量已經(jīng)指向了$arr數(shù)組中第一個(gè)元素得位置就是1得內(nèi)存位置
所以當(dāng)一次循環(huán)結(jié)束打印得數(shù)組為
php 循環(huán)引用


第二次循環(huán)
這是重點(diǎn),因?yàn)榈谝淮窝h(huán)$value這個(gè)變量已經(jīng)指向了$arr數(shù)組中第一個(gè)元素得位置就是1得內(nèi)存位置,當(dāng)?shù)诙h(huán)剛剛開(kāi)始,還沒(méi)有運(yùn)行到$value = &$arr[$key];這行,此時(shí)第二次循環(huán)已經(jīng)把 $value得值變?yōu)榱?,因?yàn)榈谝淮窝h(huán) $value指向數(shù)組$arr元素1的位置,所以當(dāng)?shù)诙窝h(huán)剛開(kāi)始$value得值變?yōu)榱?,所以$arr中第一元素就變?yōu)?,繼續(xù)往下運(yùn)行到$value = &$arr[$key]; 2 = &$arr[1]此時(shí)$value指向得地址就變?yōu)?arr第二個(gè)元素得內(nèi)存位置,同時(shí)把第二個(gè)元素賦值為2
php 循環(huán)引用


第三次循環(huán)$value已經(jīng)指向了數(shù)組$arr第二個(gè)元素得位置,所以循環(huán)剛開(kāi)始$value得值就被賦值了3,即數(shù)組得第二個(gè)元素是3,此時(shí)再往下運(yùn)行$value = &$arr[$key]; 3= &$arr[2] 素組得第三個(gè)元素還是3,$value指向數(shù)組得第三個(gè)元素得位置
php 循環(huán)引用
到此整個(gè)數(shù)組循環(huán)結(jié)束結(jié)果就是[2,3,3] 同理如果數(shù)組再加一個(gè)4必然回事[2,3,4,4]

總結(jié)
當(dāng)?shù)谝淮窝h(huán)結(jié)束時(shí),建立多對(duì)一得內(nèi)存地址映射,以后得每次循環(huán)都會(huì)先改變$value對(duì)應(yīng)內(nèi)存地址得值,即數(shù)組元素得值,然后$value再指向數(shù)組下一個(gè)元素得內(nèi)存地址

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


新聞標(biāo)題:php循環(huán)引用-創(chuàng)新互聯(lián)
URL標(biāo)題:http://www.dlmjj.cn/article/coheie.html