Hallo 
bei Joomla sehe ich öfters Methoden die wie folgt ausehen: &getInstance()
Diese Methode gibt ein Object zurück, nun frage ich mich wofür das '&' am Anfang steht. Klar es soll eine Referenz zurückgegeben werden, aber ist es denn nicht das Standardverhalten ? Werden Objekte nicht immer als Referenz zurückgegeben ?
Also in diesem Beispiel unterscheide ich die beiden Mehoden &getObj() und getObj().
Beide geben eine Referenz zu Objekt B, somit ist das Resultat am Ende gleich, denn im Spiecher wurde stets auf ein und die selben Werte zurückgegriffen.
Was macht das '&' nun für ein unterschied ?

bei Joomla sehe ich öfters Methoden die wie folgt ausehen: &getInstance()
Diese Methode gibt ein Object zurück, nun frage ich mich wofür das '&' am Anfang steht. Klar es soll eine Referenz zurückgegeben werden, aber ist es denn nicht das Standardverhalten ? Werden Objekte nicht immer als Referenz zurückgegeben ?
PHP-Code:
class A {
var $obj;
function __construct($obj) {
$this->obj = $obj;
}
function &getObj() {
return $this->obj;
}
function getObj2() {
return $this->obj;
}
}
class B {
var $b = 'b';
var $a = 'a';
}
$b = new B;
$a = new A($b);
$obj = $a->getObj();
$obj->b = '123';
$obj2 = $a->getObj2();
$obj2->a = 'abc';
echo '<pre>'; print_r($obj); echo '</pre>';
echo '<pre>'; print_r($obj2); echo '</pre>';
Beide geben eine Referenz zu Objekt B, somit ist das Resultat am Ende gleich, denn im Spiecher wurde stets auf ein und die selben Werte zurückgegriffen.
Was macht das '&' nun für ein unterschied ?
Kommentar