1

我有一个$products包含各种产品数据的数组,还有一个数组$discounts,其中键是产品项目编号。当我遍历时,$products我想定义一个局部变量,使访问特定折扣更容易,如下所示:

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

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

什么可能导致这种奇怪的现象,我怎么能给出$discounts[$prod->item_number]一个较短的名字而不引起它?

4

1 回答 1

2

每当发生这种奇怪的事情时,我总是确保没有在服务器上“意外”启用Register Globals 。我看不出您引用的代码为什么会导致 $discounts 数组被修改。要么注册全局启用,要么你在其他地方搞砸了。

于 2013-02-14T13:00:38.087 回答