-2
我总是用$text = $datasql[0];
其中$datasql = array('0'=>array('some'=>'text', 'some2'=>'text2'), '1'=>$data, etc...);
参考变量数组
,并找到了工作建设$datasql = &$datasql[0];
和工作,为什么?
那真的参考?以及如何在内存中记住这个解决方案。
我总是用$text = $datasql[0];
其中$datasql = array('0'=>array('some'=>'text', 'some2'=>'text2'), '1'=>$data, etc...);
参考变量数组
,并找到了工作建设$datasql = &$datasql[0];
和工作,为什么?
那真的参考?以及如何在内存中记住这个解决方案。
每个变量都是对一个值的引用。正常情况下,使用该值时会复制该值,但&
将复制参考。
假设你有以下变量:
$original = 'john';
如果分配从$ datasql值的变量,该值被复制:
$text = $original;
如果分配参考,该值不会被复制,而是被引用:
$text = & $original;
这意味着$text
指向$original
的值。现在,如果你取消设置$original
的$text
内容仍然有效:
unset($original);
echo $text; // john
这是因为PHP知道还有到$original
值的引用,所以它删除$original
变量名,而不是内容。
您的示例与此类似,但该变量未明确取消设置,但被覆盖。它就像任何其他变量一样是一个值的引用。
你的问题到底是什么? – 2010-06-30 13:29:12
我也不明白。 – Till 2010-06-30 14:27:55
我将它解释为:如果原始变量不再需要被引用,那么'$ datasql =&$ datasql [0]'如何工作? – Sjoerd 2010-06-30 19:45:48