Document says:
"An exception to the usual assignment by value behaviour within PHP occurs with objects, which are assigned by reference in PHP 5. Objects may be explicitly copied via the clone keyword."
But it's not very accurate! Considering this code:
<?php
$a = new StdClass;
$b = $a;
$a = new StdClass;
var_dump ($a, $b);
?>
Output:
object(stdClass)#2 (0) {
}
object(stdClass)#1 (0) {
}
Note: #2 and #1 means two different objects.
But this code:
<?php
$a = new StdClass;
$b = &$a;
$a = new StdClass;
var_dump ($a, $b);
?>
Output will be:
object(stdClass)#2 (0) {
}
object(stdClass)#2 (0) {
}
Note: Still pointing to the same object.
And this shows that that exception is not valid, PHP assignment for objects still makes a copy of variable and does not creates a real reference, albeit changing an object variable members will cause both copies to change.
So, I would say assignment operator makes a copy of 'Object reference' not a real object reference.