1樓:Shirne
引用變數用完一定要unset !!!
foreach
($arras&
$item
)unset
($item
);其實第二個迴圈完全沒有意義,迴圈體中$value沒指定引用(只是因為錯誤的用法導致它指向了陣列的末尾元素,所以才起到了修改陣列末尾元素的效果)
其它解決方法(如:後面改個變數名)。雖然能使當前問題表現正確,但不是最優解
如果不養成unset的習慣,早晚要吃大虧
2樓:
第一次迴圈
$arr=[
'a',
'b',
'c'];
foreach
($arr
as$key
=>&$value
)var_dump
($value
);var_dump
($arr
);此時 :
$value 是乙個變數, 值為 string(4) "c111"
$arr[2] 是乙個引用, 值為 &string(4) "c111"
關鍵在於 $arr[2] $value 這兩個變數都指向同乙個記憶體位址
第二次迴圈 :
foreach
($arr
as$key
=>$value
)var_dump
($arr
);其實這裡每次迴圈改變 $value 的值, 陣列 $arr[2] 的值都會跟著改變 .
當迴圈到 $arr[2] 時, 因為它本身$arr[2] 就等於上一次迴圈的 $arr[1] . '2223'; 所以它的最終值等於 $arr[1] . '2223' .
'2223';
3樓:前方
使用了引用變數,導致下面的迴圈中,$value一直迴圈拼接2223。不建議使用引用變數,直接用鍵名,$arr[$key]改變陣列鍵值就行。或者第二個foreach迴圈中,不用$value,換成$val也行。
這個英語連詞成句的問題,為什麼那麼連?
cha Cha The book gives us some advice on how to learn English well.先找名詞性詞 book,us,advice,English.然後是動詞 gives,learn.us是賓格,做賓語,然後上面名詞 動詞的搭配組合中最合理的就是 boo...
影象問題 為什麼有的影象畫素值只有0和1兩個值,有的卻是0到255,0到255怎麼變到0和1二值形式?
Spinel 資料型別不一樣 如果是double型別的,可以取0 1內的任意值,對應到uint8型別取值在0 255的整數範圍 黑到白漸變 如果是binary型別的,就取0或1 或白或黑 uint8 畫素值用8位2進製表示,對應的10進製數值為0 黑 255 白 只有0和1兩個值的影象稱為二值圖,即...
請教關於雅可比矩陣特徵值的問題,為什麼說是虛數,然後導致不穩定?
central difference的不穩定性如其他答案給出的,可以用von Nuemann stability analysis推導。如果再簡單直觀的一點,可以考慮乙個一維的邊界問題。如果使用central difference離散格點 i,方法只用了i 1,i 1的資訊,也就是說僅使用了奇數或偶...