PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Return by reference



micha
22-07-2003, 14:32
Hi,

vorweg mal die Beispiel-Klassen:



class Foo {
function show () {
echo "...";
}
}

class Bar {
var $_foo = null;

function Bar () {
$this->_foo = new Foo ();
}

function &foo () {
return ($this->_foo);
}
}


Wie stell ich es jetzt an, damit ich ohne in einer Variaben zwischen zu speichern, über ein Objekt der Klasse Bar auf die Methode show() der Klasse Foo zugreifen kann ? Also anstatt:



$bar = new Bar();
$foo =& $bar->foo();
$foo->show();


so:



$bar = new Bar();
$bar->foo()->show();


Da der obige Versuch einen Parse Error (unexpected T_OBJECT_OPERATOR) ausgibt, befürchte ich, dass das so (noch) nicht machbar ist.
Kann mir da jemand Gewissheit schaffen ?

Danke,
micha

Gaert
22-07-2003, 15:44
Hi Micha!

Ich gebe dir die Gewissheit: es geht Nicht!
Und es wird auch in Zukunft (PHP 5 / Zend Engine 2) nicht funktionieren!

Das hier funktioniert aber z.B:
$bar->_foo->show();

micha
22-07-2003, 16:42
Hi Gaert,


Original geschrieben von Gaert
Hi Micha!

Ich gebe dir die Gewissheit: es geht Nicht!
Und es wird auch in Zukunft (PHP 5 / Zend Engine 2) nicht funktionieren!


Mhm, hört sich schlecht an, gibts dafür einen bestimmten Grund ?



Das hier funktioniert aber z.B:
$bar->_foo->show();


Das ist mir klar, allerdings will/wollte ich genau das umgehen ;)

Gruß micha

Gaert
22-07-2003, 16:56
Original geschrieben von micha

Mhm, hört sich schlecht an, gibts dafür einen bestimmten Grund ?

...

Das ist mir klar, allerdings will/wollte ich genau das umgehen ;)

Gruß micha

Ein Grund ist mir nicht bekannt - eine Restriktion in der Zend Engine oder dem Parser - ich halte es allerdings auch nicht für notwendig.