class A { public function foo(B $b) { $b->a = &$this; var_dump($b); } } class B { public $a = null; } $a = new A; $b = new B; $a->foo($b); var_dump($b); // Output: object(B)#2 (1) { ["a"]=> &object(A)#1 (0) { } } object(B)#2 (1) { ["a"]=> object(A)#1 (0) { } }