引用变量数组

时间:2010-06-30 13:16:12

标签: php arrays reference

我总是使用$text = $datasql[0]; 其中$datasql = array('0'=>array('some'=>'text', 'some2'=>'text2'), '1'=>$data, etc...);

找到了工作结构$datasql = &$datasql[0];并开始工作,为什么?

真的参考?以及如何在内存中记住这个解决方案。

1 个答案:

答案 0 :(得分:3)

每个变量都是对值的引用。通常,在您使用该值时会复制该值,但使用&复制引用

假设您有以下变量:

$original = 'john';

如果将$ datasql中的值分配给变量,则会复制该值:

$text = $original;

如果指定引用,则不会复制该值,但会引用:

$text = & $original;

这意味着$text指向$original的值。现在,如果您取消设置$original,则$text的内容仍然有效:

unset($original);
echo $text; // john

这是因为PHP知道仍然存在对$original的值的引用,因此它将$original变量删除为名称,但不删除内容。

您的示例类似,但该变量未显式取消设置,但已被覆盖。它是一个值的引用,就像任何其他变量一样。