所以我可以使用&
$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);
但我得到Fatal error: Call-time pass-by-reference has been removed
答案 0 :(得分:5)
由于它是一个对象,$a
已经(某种程度上)是一个引用本身*。您根本不需要涉及&
个引用:
array_unshift($b, $a);
*对象是唯一的,不会在分配时复制。对共享该对象的所有变量都可以看到对象的更改。