
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 ?
Einen Kommentar schreiben: