成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

foreach 使用引用需要注意的問題

ccj659 / 2481人閱讀

摘要:是指將數(shù)組的值給,當我們需要直接操作原數(shù)組時,就會添加引用符號,這時接收的是數(shù)組值的地址空間。輸出結(jié)果異常分析第一個遍歷結(jié)束,因為是引用賦值,所以變量和最后一個數(shù)組單元是同一個地址空間。

foreach($arr as $key=>$value){}  

foreach是指將數(shù)組$arr的值copy給$value,當我們需要直接操作原數(shù)組時,就會添加引用符號&,這時$value接收的是數(shù)組值的地址空間。

$arr = ["a","b","c"];
foreach($arr as $key=>&$value){}
foreach($arr as $key=>$value){ echo $value; }

輸出結(jié)果: abb

異常分析:

第一個遍歷結(jié)束,因為是引用賦值,所以$value變量和最后一個數(shù)組單元c是同一個地址空間。

第二個遍歷中,是copy賦值,數(shù)組的每個值依次賦值給$value(等同于數(shù)組中的元素c)的地址空間,所以

第一次遍歷后$arr = ["a","b","a"] //變量c因為$value被賦值為a,也跟著變?yōu)閍

第二次遍歷后$arr = ["a","b","b"] //變量c因為$value被賦值為b,也跟著變?yōu)閎

第三次遍歷后$arr = ["a","b","b"] //這里相當于 $value = $value 自己給自己賦值

看懂這個,可以思考一下 下面循環(huán)出現(xiàn)異常的原因:

    $arr = array(1,2,3);
    foreach ($arr as $k => $v){
        $v = &$arr[$k];
    }
    var_dump($arr);


文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/22436.html

相關文章

  • 十個 PHP 開發(fā)者最容易犯錯誤

    摘要:這種行為比最初出現(xiàn)的問題更為棘手,同時也是一種常見的錯誤源。這意味著這個數(shù)組的一份拷貝將會被返回,因此被調(diào)函數(shù)與調(diào)用者所訪問的數(shù)組并不是同樣的數(shù)組實例。 showImg(https://segmentfault.com/img/bV7reP?w=620&h=620); PHP 語言讓 WEB 端程序設計變得簡單,這也是它能流行起來的原因。但也是因為它的簡單,PHP 也慢慢發(fā)展成一個相對...

    fireflow 評論0 收藏0
  • PHP_數(shù)組

    摘要:李尋歡索引數(shù)組索引數(shù)組,元素的值和下標不存在邏輯關系,而下標只表示值索引位置。鍵和值,同時向下移動指針獲得元素信息,返回的是,關聯(lián)和索引數(shù)組其中關聯(lián)數(shù)組部分。 數(shù)組 數(shù)據(jù)由元素組成,元素由鍵和值組成 數(shù)組分類 關聯(lián)數(shù)組關聯(lián)數(shù)組,元素的下標與元素的值存在邏輯上的關系,稱之為關聯(lián)數(shù)組。指的是,鍵和值之間存在管理。 $a1 = array(name => 李尋歡, age => 34); ...

    zone 評論0 收藏0
  • 工具集核心教程 | 第四篇: Velocity模板引擎入門到進階

    摘要:是一個基于的模板引擎。模板中未被定義的變量將被認為是一個字符串。公眾號回復全棧,領取前端,,產(chǎn)品經(jīng)理,微信小程序,等資源合集大放送。公眾號回復面試,領取面試實戰(zhàn)學習資源。 Velocity是一個基于java的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由java代碼定義的對象。 當Velocity應用于web...

    leon 評論0 收藏0
  • 再理解-PHP引用

    摘要:引用本身概念好理解性能也很好但是用好它還是存在著一定的門檻不太好寫。寫本文的起因是這幾天碰到非常好的一個解決方案,讓我重新理解了引用。如果下面的代碼,你看完就能理解了,說明你引用真是學到家了你也可以直接跳過本文哈。 起因: 日常開發(fā)中,我們會碰到構(gòu)造樹的需求,通過id,pid的關系去構(gòu)建一個樹結(jié)構(gòu),然后對樹進行遍歷等操作。其實現(xiàn)方式分為兩種: 1. 遞歸, 2. 引用而這兩個方法的優(yōu)缺...

    ermaoL 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<