So I can push a reference of an object into an array using &
$a = (object) array('a' => 1);
$b[]='test';
$b[] = &$a;
$a->b = 2;
var_dump($b);
Result:
array (size=2)
0 => string 'test' (length=4)
1 => &
object(stdClass)[2]
public 'a' => int 1
public 'b' => int 2
But how can I "push" the reference into the start of the array?
I tried
array_unshift($b, &$a);
But I got Fatal error: Call-time pass-by-reference has been removed
Since it's an object, $a is already (sort of) a reference in itself*. You do not need to dabble with & references at all:
array_unshift($b, $a);
* Objects are unique and not copied on assignment. Changes to an object will be visible across all variables who share the object.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With