我有一個名爲$products
的數組,其中包含各種產品數據,以及一個名爲$discounts
的數組,其中的鍵是產品物料號。當我遍歷$products
我想定義一個局部變量,這將使訪問特定的折扣更容易,就像這樣:在PHP中覆蓋的變量
foreach ($products as $prod) {
$discount = $discounts[$prod->item_number];
// do stuff
}
太多調試後,我已經確定,由於某些原因,上面的代碼導致$discounts
的最後一項被上一項的內容覆蓋。
什麼可能會導致這種奇怪的現象,我怎麼能給$discounts[$prod->item_number]
一個較短的名稱而不造成它?
您是否在任何地方使用參考? – 2013-02-14 12:59:23
你確定,$ discounts'的最後一項被覆蓋,而不是'$ discount'?在這種情況下,'$ discount'總是被新的var覆蓋,因爲它只是一個正常的var。 – sascha 2013-02-14 13:00:30
我已經從字面上刪除了除該行之外的整個循環,然後在每次迭代中轉儲整個$ discounts數組。第二次迭代以某種方式覆蓋最後一項「$ discounts」的內容。 – Tal 2013-02-14 13:09:04