【发布时间】:2010-08-16 10:42:05
【问题描述】:
我正在发送一个最初为空的数组变量的引用。 在被调用的函数中,数组被填充。
function one()
{
$ret = array();
two($ret);
pri nt_r($ret);
}
function two(&$res)
{
foreach($a as $b)
{
$id = $b->getid();
$txt = $b->gettxt();
$res[$id] = $txt;
}
}
在这里,如果 $id 重复,我假设它被默认覆盖。 也就是说,如果 foreach 运行 5 次,如果 id=5 运行 3 次,则结果只有数组中的两个元素;
这是这种数组分配的默认行为吗? 还是我错过了什么?
是的,它正在用最后一个值覆盖重复项。我单独进行了测试,结果恰好是假设的。但是如果我们使用 array_push 我希望它会被复制。我认为直接分配重复项将被复制而不是覆盖。无论如何,让我从用户那里得到一些 cmets,这样如果我错过了一些关于这个复制和覆盖的有用信息,我可以更新。
【问题讨论】:
-
举例说明如何使用这些函数...
-
是的,我已经投票了。还有其他地方我没有这样做吗?根据stackoverflow的建议,对于一些答案,我要等15天才能点击接受。
-
即使对于您承认他们充分回答您的问题的答案? stackoverflow.com/questions/3403732/…, stackoverflow.com/questions/3387019/…