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 配列が変更される理由がわかりません。Register Globals が有効になっているか、別の場所で問題が発生しています。

于 2013-02-14T13:00:38.087 に答える