在PHP中被覆盖的变量

时间:2013-02-14 12:56:08

标签: php variables

我有一个名为$products的数组,其中包含各种产品数据,还有一个名为$discounts的数组,其中的键是产品项目编号。当我循环$products时,我想要定义一个局部变量,这样可以更容易地访问特定折扣,如下所示:

foreach ($products as $prod) {
    $discount = $discounts[$prod->item_number];
    // do stuff
}

经过太多调试后,我确定上述代码由于某种原因导致最后一项$discounts被上一项的内容覆盖。

什么可能导致这种奇怪的现象,怎么能在没有引起它的情况下给$discounts[$prod->item_number]一个更短的名字?

1 个答案:

答案 0 :(得分:2)

每当发生类似这样的奇怪事件时,我总是确保服务器上没有“意外”启用Register Globals。我认为你的引用代码没有理由导致$ discounts数组被修改。注册Globals已启用,或者您正在搞乱其他地方。