Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unshift object reference into array

Tags:

php

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

like image 374
andrew Avatar asked Nov 29 '25 23:11

andrew


1 Answers

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.

like image 58
deceze Avatar answered Dec 01 '25 15:12

deceze



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!