title besides title

 

Friday, November 30, 2012

PHP : Classes & Objects - [7.6] Assigning Object References


7.6.1 Problem

You want to link two objects, so when you update one, you also update the other.

7.6.2 Solution

Use =& to assign one object to another by reference:
$adam = new user;
$dave =& $adam;

7.6.3 Discussion

When you do an object assignment using =, you create a new copy of an object. So, modifying one doesn't alter the other. But when you use =&, the two objects point at each other, so any changes made in the first are also made in the second:
$adam = new user;
$adam->load_info('adam');

$dave =& $adam;
$dave->load_info('dave');
The values in $adam are equal to those of $dave