本篇文章為大家展示了在PHP中foreach循環(huán)的引用賦值中出現(xiàn)的問題,代碼簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
創(chuàng)新互聯(lián)主營莘縣網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,手機(jī)APP定制開發(fā),莘縣h5小程序開發(fā)搭建,莘縣網(wǎng)站營銷推廣歡迎莘縣等地區(qū)企業(yè)咨詢
foreach($arr as &$value)
1.引用賦值符號&,是每次循環(huán)的時(shí)候,把當(dāng)前元素變成地址,$value變量就是對應(yīng)元素的地址,循環(huán)結(jié)束$value是一個(gè)指向最后一個(gè)元素的地址
2.當(dāng)我下次循環(huán),使用了這種方式foreach($arr as $value) ,會出現(xiàn)問題;foreach會把每個(gè)元素賦值給后面的$value變量
3.因此,邏輯就變成了,把每個(gè)元素修改給原數(shù)組的最后一個(gè)元素,最后一次循環(huán)會一直是前一次的結(jié)果
4.最好不用引用傳遞,用這種形式$arr[$key]改原數(shù)組,或者在下次循環(huán)時(shí)候換一個(gè)變量名
$nums=array(1,2,3); foreach($nums as &$v){ var_dump($v); } /* int(1) int(2) int(3) */ var_dump($nums); /* array(3) { [0]=> int(1) [1]=> int(2) [2]=> &int(3) } */ foreach($nums as $v){ var_dump($v); } /* int(1) int(2) int(2) */
上述內(nèi)容就是在PHP中foreach循環(huán)的引用賦值中出現(xiàn)的問題,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。