Mailinglisten-Archive |
Hallo Frieder, die Function "test" extistiert nicht erst "zur Laufzeit". function run () { $this->var = "foo"; print $this->var; // => foo $this->test (); print $this->var; // => bar } Ciao Alex > ich hab folgendes problem. ich brauche die funktion > call_user_method(...), um innerhalb eines objektes member-funktionen > aufzurufen, die erst zur laufzeit existieren. diese methoden sollen dann > attribute des objektes verändern, und diese veränderung soll beibehalten > werden. > > ------------>8----------- > class abc > { > var $var; > ... > function test() > { > ... > $this->var = "bar"; > } > ... > function run() > { > ... > $method = "test"; > $this->var = "foo"; > echo $this->var; // zeigt logischerweise "foo" > call_user_method($method, $this); > echo $this->var; // zeigt interessanterweise immer noch "foo" > ... > } > } > ------------8<----------- > > meine frage: erzeugt call_user_method(...) ein neues objekt? wenn ja, > wie kann das vermieden werden? > eine möglichkeit gibt's, die ist aber nicht sauber: > function test() {... return $this; } > function run() {... $this = call_user_method(...); } > > kennt noch jemand eine bessere möglichkeit?
php::bar PHP Wiki - Listenarchive