首頁  >  文章  >  後端開發  >  php在foreach循環後留下數組的引用問題

php在foreach循環後留下數組的引用問題

不言
不言原創
2018-04-13 14:23:532194瀏覽

本篇文章介紹的內容是php在foreach循環後留下數組的引用問題,現在分享給大家,有需要的朋友可以看一下

eg:



#result:


#解釋:

##1.foreach不是區塊級域,數組引用結束,$k,$a沒有釋放記憶體

2.當第一次引用循環結束的時候,$a指向數組最後一個元素4

3 .當第二次開始循環(此時$a已經是指向最後一個元素,是引用)

循環4次  數組的變化分別是:

1->   

[1,2,3,4]

2->    [1,

2,3,4]

3->    [1, 2,

3,3]     第三次value指向最後一個元素3    但是value是全域引用在上次循環指向了最後一個元素  所以value=3的時候 也會把最後一個元素的值改為3

4->    [1,2,3,3]



注意事項:

1.foreach 實作原則有內部指標的概念    

2.&的foreach迴圈結束   指標會指向最後一個元素


#如何避免:

在用&foreach迴圈後  unset  ($a)

相關推薦:

PHP中foreach引用傳送位址

php中foreach使用&引用後的異常處理

#foreach與正常for迴圈效率之間解析#

以上是php在foreach循環後留下數組的引用問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn