2011-07-09 230 views
0

我有两个数组。一个会添加数组作为子元素,另一个保存对第一个数组添加的引用。php一个参考数组

$list=array(); 
$stack=array(); 

在for循环中:

$list[]=array('something'); 
$stack[]=& end($list); //errors: Only variables should be assigned by reference 

我到底做错了什么?感谢帮助。

+0

错误消息似乎不言自明。为什么'新阵列'?只是'阵列'会做。 –

+0

@tomalak,对不起,这是一个错误。 – bingjie2680

回答

1

被修改

$stack[] = &$list[count($list)-1]; //> Assuming numeric index incremental 

end($list); 
$stack[] = &$list[key($list)]; 
+0

这样,引用是$ var,而不是结束($ list)?对??我希望引用结尾($ list),所以它不会在for循环之外解除。 – bingjie2680

+0

'&='意味着不同的东西。可能不是什么意图。 – duskwuff

+0

@duskwuff:这显然是一个错字。您可以编辑 – dynamic

0

对象将总是通过引用PHP传递5.

EDITED

但是如果阵列是不一类然后

$element = array(); 
$list[] = &$element; 
$stack[] = &$element; 
+0

对不起,我是一个初学者在PHP。数组也一样吗? – bingjie2680

+0

如果您使用PHP数组,则代码更简单。当然,你需要将填充数组传递给$元素。 – Gedrox

+0

所以列表和堆栈都是引用$元的数组? – bingjie2680