phpbar.de logo

Mailinglisten-Archive

[php] erzeugt call_user_method(...) ein neues objekt?

[php] erzeugt call_user_method(...) ein neues objekt?

Frieder Jacobi php_(at)_phpcenter.de
Tue, 29 Jan 2002 12:41:20 +0100


hallo, 
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?

vielen dank schon mal,

frieder

(p.s. mail bitte auch direkt an mich)


php::bar PHP Wiki   -   Listenarchive