【发布时间】:2011-06-01 02:44:09
【问题描述】:
有什么区别
foreach ($my_array as $my_value) {
}
还有:
foreach ($my_array as &$my_value) {
}
?
我可以请你给我两个真实的例子,说明什么时候使用一个,什么时候使用另一个?
【问题讨论】:
-
根据经验,永远不要使用引用。
-
@troelskn:这是一条愚蠢的经验法则。有时你必须使用它们。如果您不知道是否应该使用它们,那么您可能不必这样做。但是每当你想修改实际值时,你必须使用引用。
-
@Felix Kling:我同意@troelskn。我从来不需要修改数组的实际值。每次我不得不这样做时,您都可以编写比使用 ('&$var') 更好的代码。我能想到的唯一方法可能是......优化:如果您使用'&',我想(如果我错了,请纠正我)没有必要将副本复制到临时变量中。从而获得执行时间。如果您有一个示例无法避免像我的问题中带有“&”的循环,我可以请您在此处将它们显示为评论吗?非常感谢!
-
@oliver 实际上,由于 PHP 的内部机制,在大多数情况下使用引用会更慢。
-
@felix 我的意思是,如果您需要参考来做您想做的事,那么您做错了什么。重构你的代码。