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