Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Instanz "erweitern"





Frage

Hi Leute, Also ich habe eine Instanz einer Klasse. Nun möchte ich mit einer Methode dieser Klasse die Klasse wechseln. Also von einer Klasse ´StandardKlasse´ nach ´SpezielleKlasse´ (extends StandardKlasse) Ist eigentlich kein Problem, indem ich $this = new SpezielleKlasse(); ausführe. Das Problem ist nur, dass die Attribute in der Hauptklasse erhalten bleiben sollen, was mit dem oben genannten Weg nicht möglich ist. PHP-Version ist PHP4 (kann nicht auf 5 geändert werden) Danke im Voraus clembra

Antwort 1 von cryptosize

schreib doch einfach ne kleine export und import funktion für die beiden klassen, die dir jeweils alle wichtigen attribute exportiert (in ein array, die session oder whatever) und sie in der neuen klasse wieder importiert.

quasi zwischenspeichern, is vll etwas dirty, abern anderer weg fällt mir spontan auch nich ein !

Antwort 2 von ClemBra

Danke, war auch mein erster Gedanke, aber ich wollte die Variablen nicht von Hand in ein Array schreiben (bzw. per foreach). Ich hab mal etwas weiter in diese Richtung gesucht und was gefunden:
Ich mache es jetzt so, dass ich alle Variablen mittels
get_object_vars($this);

einlese und anschließend in einer anderen Funktion in der gleichen Klasse (die ja als Parent dient) mittels einer Schleife:

foreach ($array as $name=>$value) {
    $this->{$name} = $value;
}

wieder ausgebe.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: