php是一个引用数组
我有两个数组。其中一个将添加数组作为子数组,另一个将保留对要添加到第一个数组的数组的引用php是一个引用数组,php,arrays,reference,Php,Arrays,Reference,我有两个数组。其中一个将添加数组作为子数组,另一个将保留对要添加到第一个数组的数组的引用 $list=array(); $stack=array(); 在for循环中: $list[]=array('something'); $stack[]=& end($list); //errors: Only variables should be assigned by reference 我做错了什么?谢谢您的帮助。已编辑 $stack[] = &$list[count($lis
$list=array();
$stack=array();
在for循环中:
$list[]=array('something');
$stack[]=& end($list); //errors: Only variables should be assigned by reference
我做错了什么?谢谢您的帮助。已编辑
$stack[] = &$list[count($list)-1]; //> Assuming numeric index incremental
或
在PHP5中,对象将始终通过引用传递 已编辑 但如果数组不是一个类,那么
$element = array();
$list[] = &$element;
$stack[] = &$element;
这样,引用的是$var,而不是结束($list)??正确的??我想要对end($list)的引用,这样它就不会在for循环外dispare。
&=
表示不同的含义。可能不是预期的。它仍然不会引用$list的最后一个元素,而是引用文档中的新变量$var.@Gedrox:“返回引用的函数和新运算符可以使用相同的语法”。问题是,在第一行中,引用丢失了。函数“end”返回数组中最后一个元素的副本。错误消息似乎不言自明。为什么要使用新阵列
?只要Array
就行了。@tomalak,对不起,那是个错误。对不起,我是php的初学者。数组也是如此??如果您使用PHP数组,则代码将被删除。当然,您需要将填充的数组传递到$element中。因此列表和堆栈都是对$element的引用数组??
$element = array();
$list[] = &$element;
$stack[] = &$element;