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