php問題,為什麼會產生這個值

時間 2021-05-11 02:09:22

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的資訊,也就是說僅使用了奇數或偶...