Neue Klasse ist eine Unterklasse des ursprünglichen Objekts
Es muss php4-kompatibel sein
Sie könnten Ihre Klassen leer formatieren lassen und dann mit einer beliebigen Anzahl von Methoden laden. Eine dieser Methoden könnte eine Instanz der Elternklasse als Argument akzeptieren und dann ihre Daten von dort kopieren
%Vor%Du kannst es mit etwas schwarzer Magie machen, obwohl ich ernsthaft warum fragst, ob du diese Anforderung überhaupt hast. Es deutet darauf hin, dass mit Ihrem Design etwas nicht stimmt.
Trotzdem:
%Vor%Dies unterliegt denselben Einschränkungen wie die allgemeine Serialisierung, was bedeutet, dass Verweise auf andere Objekte oder Ressourcen verloren gehen.
Ein PHP-Objekt unterscheidet sich nicht wesentlich von einem Array, und da alle PHP 4-Objektvariablen öffentlich sind, können Sie ein paar unordentliche Sachen machen:
%Vor%Es ist nicht schön, und es ist nicht genau das, was ich als gute Praxis betrachte, aber es ist wiederverwendbar, und es ist ziemlich nett.
Die beste Methode wäre, eine Klonmethode für die Unterklasse zu erstellen, so dass Sie Folgendes tun können:
%Vor%Alternativ klingt es so, als könnten Sie in das Dekorationsmuster PHP-Beispiel
Ich würde mir vorstellen, Sie müssten eine Art "Kopierkonstruktor" erfinden. Dann würden Sie einfach ein neues Unterklassenobjekt erstellen, während Sie das ursprüngliche Objekt übergeben.