PHP - Ampersand before the variable in foreach loop
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Reference - What does this symbol mean in PHP?
我需要知道为什么在foreach循环中的变量之前使用和号
1 2 3 4 5 | foreach ($wishdets as $wishes => &$wishesarray) { foreach ($wishesarray as $categories => &$categoriesarray) { } } |
这个例子将向您展示不同之处
1 2 3 4 5 6 7 8 9 10 |
在这里查看php文档:http://pl.php.net/manual/en/control-structures.foreach.php
这意味着它是通过引用传递的,而不是通过值传递的…即对变量的任何操作都会影响原始变量。这与任何修改都不会影响原始对象的值不同。
在StackOverflow上会多次询问此问题。
它用于将数组的单个实例中的更改应用于主数组。
AS:
//现在更改不会影响数组$wishesarray
1 2 3 4 | foreach ($wishesarray as $id => $categoriy) { $categoriy++; } print_r($wishesarray); //It'll same as before.. |
但现在的变化也会反映在$wishesarray数组中。
1 2 3 4 | foreach ($wishesarray as $id => &$categoriy) { $categoriy++; } print_r($wishesarray); //It'll have values all increased by one.. |
对于问题中的代码,不能给出特定的答案,因为foreach内部循环是空的。
我在代码中看到的是,内部
我建议您阅读一下
1 2 3 4 5 6 7 8 9 | foreach($standard as $each); foreach($standard as &$each); # this is used in your question $reference = &$standard; foreach($reference as $each); $reference = &$standard; foreach($reference as &$each); # this is used in your question |