Php Foreach给出错误的美元值

Php Foreach给出错误的美元值,php,arrays,foreach,associative-array,Php,Arrays,Foreach,Associative Array,这把我难住了。print\u r显示正确的数组索引和值,但是foreach构造检索错误的值,甚至更改最后一个索引的值,即使我没有通过引用检索值(不使用符号) 最后一个索引的值会在每次迭代中更改当前索引的值。这将导致最后一个值输出与倒数第二个索引具有相同的值 帮助?您以前使用和$value作为参考: foreach($_SESSION['cart'] as $key => &$value) 变量继续作为循环之外的引用存在,在循环中再次使用它会产生预期但不明显的副作用。这甚至在一个大

这把我难住了。print\u r显示正确的数组索引和值,但是foreach构造检索错误的值,甚至更改最后一个索引的值,即使我没有通过引用检索值(不使用符号)

最后一个索引的值会在每次迭代中更改当前索引的值。这将导致最后一个值输出与倒数第二个索引具有相同的值


帮助?

您以前使用
和$value
作为参考:

foreach($_SESSION['cart'] as $key => &$value)

变量继续作为循环之外的引用存在,在循环中再次使用它会产生预期但不明显的副作用。这甚至在一个大的红色框中提到<代码>在第一个循环后取消设置($value),以避免出现这种情况。

您之前使用了
和$value
作为参考:

foreach($_SESSION['cart'] as $key => &$value)

变量继续作为循环之外的引用存在,在循环中再次使用它会产生预期但不明显的副作用。这甚至在一个大的红色框中提到<代码>在第一个循环后取消设置($value)以避免出现这种情况。

您在这里使用的是引用:

foreach($_SESSION['cart'] as $key => &$value)

不要在此处使用引用或在循环后立即取消设置$value。

您在此处使用引用:

foreach($_SESSION['cart'] as $key => &$value)
不要在此处使用引用,或者在循环后立即取消设置$value。

可能重复的