$arr=array("a","b","c","d");
foreach ($arr as &$value) {
}
//$value=&arr[3];$value="d";
foreach ($arr as $key=>$value) {
echo "<pre>";
var_dump($arr);
}
結(jié)果如下
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
&string(1) "a"
}
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
&string(1) "b"
}
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
&string(1) "c"
}
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
&string(1) "c"
}
我想問(wèn)下,第二個(gè)foreache函數(shù)前,已經(jīng)確定了$value=&arr[3];那么下面的在第一次循環(huán)時(shí)$value=$arr[0];是否完全覆蓋了第一個(gè)$value時(shí),還有為什么,最后的值是abcc,能否從zval結(jié)構(gòu)解釋下嗎
1 回答

鳳凰求蠱
TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊
你的理解是沒(méi)錯(cuò)的,認(rèn)真想想:)
第一個(gè)foreach之后,$value
就指向了數(shù)組的第四個(gè)元素:
[a b c d]
^
value
第二各個(gè)foreach,每次都會(huì)覆蓋$value
,前3次是這樣的:
[a b c a]
^ ^
value
[a b c b]
^ ^
value
[a b c c]
^ ^
value
第4次循環(huán)到第4個(gè)元素,因?yàn)樵诘?次的時(shí)候已經(jīng)被覆蓋成c
了,所以第4次也是c
- 1 回答
- 0 關(guān)注
- 314 瀏覽
添加回答
舉報(bào)
0/150
提交
取消