我有一个名为$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