摘要:是指將數(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
摘要:這種行為比最初出現(xiàn)的問題更為棘手,同時也是一種常見的錯誤源。這意味著這個數(shù)組的一份拷貝將會被返回,因此被調(diào)函數(shù)與調(diào)用者所訪問的數(shù)組并不是同樣的數(shù)組實例。 showImg(https://segmentfault.com/img/bV7reP?w=620&h=620); PHP 語言讓 WEB 端程序設計變得簡單,這也是它能流行起來的原因。但也是因為它的簡單,PHP 也慢慢發(fā)展成一個相對...
摘要:李尋歡索引數(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); ...
摘要:是一個基于的模板引擎。模板中未被定義的變量將被認為是一個字符串。公眾號回復全棧,領取前端,,產(chǎn)品經(jīng)理,微信小程序,等資源合集大放送。公眾號回復面試,領取面試實戰(zhàn)學習資源。 Velocity是一個基于java的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由java代碼定義的對象。 當Velocity應用于web...
閱讀 1726·2021-11-24 09:39
閱讀 3221·2021-11-22 15:24
閱讀 3129·2021-10-26 09:51
閱讀 3319·2021-10-19 11:46
閱讀 2928·2019-08-30 15:44
閱讀 2254·2019-08-29 15:30
閱讀 2571·2019-08-29 15:05
閱讀 816·2019-08-29 10:55