欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP中foreach循環(huán)中使用引用要注意的地方

 更新時間:2011年01月02日 13:30:01   作者:  
發(fā)現(xiàn)了一個容易出錯,但是不懂得原理卻解釋不明白的問題,碰到類似問題的朋友可以參考下。
復制代碼 代碼如下:

foreach ($array as &$row) {
$row = explode('/', $row);
}
foreach ($array as $row) {
//do something
}

這么寫,在第二個循環(huán)會出邏輯錯誤,加入第二個循環(huán)中do something的地方是輸出$row,循環(huán)到最后一個的時候的輸出是倒數(shù)第二個元素,而不是最后一個

要這么寫
復制代碼 代碼如下:

foreach ($array as &$row) {
$row = explode('/', $row);
}
unset($row);
foreach ($array as $row) {
//do something
}

或者第一個循環(huán)這么寫
復制代碼 代碼如下:

foreach ($array as $key => $row) {
$array[$key] = explode('/', $row);
}


說一下原理
第一個循環(huán)使用了引用,循環(huán)結(jié)束后,$row引用的是$array數(shù)組的最后一個元素,當開始第二個循環(huán)的時候,$row變量每次循環(huán)都會被賦一個新值,在php中,如果一個內(nèi)存空間是被引用的,那么當改變它的時候是直接改變這塊內(nèi)存空間的值,也就是說,當?shù)诙€foreach的第一次循環(huán),$array的最后一個元素的值就被改變?yōu)?array的第一個元素的值,第二次循環(huán)的時候,改變?yōu)榈诙€元素的值,倒數(shù)第二次循環(huán)的時候,被改變?yōu)榈箶?shù)第二個元素值,而最后一次循環(huán)的時候得道的值必然是那個倒數(shù)第二個值
當然,如果php的for循環(huán)有作用域的話,也不會出現(xiàn)此問題.....

相關文章

  • Zend studio文件注釋模板設置方法

    Zend studio文件注釋模板設置方法

    這篇文章主要介紹了Zend studio中新建文件注釋、函數(shù)注釋、代碼塊等模板的實例
    2013-09-09
  • php中數(shù)據(jù)格式判斷方法總結(jié)

    php中數(shù)據(jù)格式判斷方法總結(jié)

    這篇文章主要為大家詳細介紹了php中數(shù)據(jù)格式判斷方法,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-12-12
  • 將IP地址轉(zhuǎn)換為整型數(shù)字的PHP方法、Asp方法和MsSQL方法、MySQL方法

    將IP地址轉(zhuǎn)換為整型數(shù)字的PHP方法、Asp方法和MsSQL方法、MySQL方法

    本篇文章是對IP地址轉(zhuǎn)換為整型數(shù)字的PHP方法、Asp方法和MsSQL方法、MySQL方法進行了詳細的分析介紹,需要的朋友參考下
    2013-07-07
  • php中常見的sql攻擊正則表達式匯總

    php中常見的sql攻擊正則表達式匯總

    這篇文章主要介紹了php中常見的sql攻擊正則表達式,實例匯總了針對各種常見的SQL語句及正則表達式原理的分析與應用,對于PHP程序設計的安全來說具有很好的參考借鑒價值,需要的朋友可以參考下
    2014-11-11
  • php中socket通信機制實例詳解

    php中socket通信機制實例詳解

    這篇文章主要介紹了php中socket通信機制,講述了socket通信機制的原理,并以實例形式較為詳細的分析了socket通信機制的用法,需要的朋友可以參考下
    2015-01-01
  • PHP多個文件上傳到服務器實例

    PHP多個文件上傳到服務器實例

    這篇文章主要介紹了PHP多個文件上傳到服務器的實現(xiàn)方法,以實例形式詳細講解了多文件傳遞過程中的數(shù)組應用及數(shù)據(jù)遍歷上傳等技巧,非常具有實用價值,需要的朋友可以參考下
    2014-10-10
  • PHP與MySQL開發(fā)的8個技巧小結(jié)

    PHP與MySQL開發(fā)的8個技巧小結(jié)

    LAMP 架構(gòu)的網(wǎng)站,我以前注重的多是安裝/配置方面的,講述開發(fā)的相對較少,因為自己從事開發(fā)也少??戳艘院?,頗有啟發(fā),以前開發(fā)中遇到的一些問題,迎刃而解。所以翻譯出來和大家共享。
    2010-12-12
  • php常用hash加密函數(shù)

    php常用hash加密函數(shù)

    這篇文章主要介紹了php常用hash加密函數(shù),以實例形式詳細分析了PHP的hash加密函數(shù)用法,代碼中備有詳盡的注釋,便于理解,需要的朋友可以參考下
    2014-11-11
  • PHP使用數(shù)組實現(xiàn)矩陣數(shù)學運算的方法示例

    PHP使用數(shù)組實現(xiàn)矩陣數(shù)學運算的方法示例

    這篇文章主要介紹了PHP使用數(shù)組實現(xiàn)矩陣數(shù)學運算的方法,結(jié)合具體實例形式分析了php基于數(shù)組實現(xiàn)矩陣表示與運算的相關操作技巧,需要的朋友可以參考下
    2017-05-05
  • 利用PHP判斷是手機移動端還是PC端訪問的函數(shù)示例

    利用PHP判斷是手機移動端還是PC端訪問的函數(shù)示例

    在平常工作開發(fā)中,我們通常需要開發(fā)出PC端和移動端兩個不同的系統(tǒng),從而根據(jù)訪問端的不同進入到不同的操作界面中。下面這篇文章主要給大家介紹了關于利用PHP判斷是手機移動端還是PC端訪問的函數(shù)的相關資料,需要的朋友可以參考下。
    2017-12-12

最新評論