Mailinglisten-Archive |
Hallo P. Am 04.06.2008 um 10:21 schrieb P. Genna Privat: > Wir haben das Objekt 'test' welches wiederum das Objekt 'text' haben > könnte, aber in diesem Fall nicht hat. Objekt 'text' hat die Methode > 'sprich'. Im Gedanken 'test' hätte 'text' rufen wir also: > 'test->text->sprich()'. Das hier die allseitsbeliebte Fehlermeldung > :'Call to a member function spich() on a non-object' erscheint, ist > verständlich. > Möglichkeiten hier wäre das Magische '__get()', damit könnte ich ja > ausfinden welches Objekt fehlt und dieses nachladen. Aber wie > finde ich > raus welche Methode auf das Objekt ausgeführt werden sollte? Ist das > überhaupt möglich? Dazu dient __call() www.php.net/manual/de/language.oop5.overloading.php Wenn du zuerst das Objekt erzeugst und anschließend die Methode aufrufst, funktioniert es: <?php class test { public function __get($name) { return new text; } } class text{ public function __call($method, $arguments){ echo "Mich wirst du so nie sehen"; } } $run = new test; $go = $run->text; $go->sprich(); ?> Gruß, Hans
php::bar PHP Wiki - Listenarchive