Php 将对象引用取消移位到数组中
因此,我可以使用Php 将对象引用取消移位到数组中,php,Php,因此,我可以使用& $a = (object) array('a' => 1); $b[]='test'; $b[] = &$a; $a->b = 2; var_dump($b); 结果: array (size=2) 0 => string 'test' (length=4) 1 => & object(stdClass)[2] public 'a' => int 1 public 'b' => in
&
$a = (object) array('a' => 1);
$b[]='test';
$b[] = &$a;
$a->b = 2;
var_dump($b);
结果:
array (size=2)
0 => string 'test' (length=4)
1 => &
object(stdClass)[2]
public 'a' => int 1
public 'b' => int 2
但是如何将引用“推”到数组的开头呢
我试过了
array_unshift($b, &$a);
但是我得到了一个致命的错误:调用时间传递引用被删除了,因为它是一个对象,
$a
本身已经(某种程度上)是一个引用了*。您根本不需要涉猎和参考资料:
array_unshift($b, $a);
*对象是唯一的,不会在指定时复制。对象的更改将在共享该对象的所有变量中可见。我现在有了更好的理解。而array\u push
具有与$b[]=&$a