2012-04-12 12 views
0

Gibt es eine einfache Möglichkeit, ein übergeordnetes Objekt als untergeordnete Klasse umzuwandeln, vorzugsweise nach einer Methode der übergeordneten Klasse.PHP OOP: Überschreiben des übergeordneten Objekts als untergeordnete Klasse

Zum Beispiel kann ich eine "Besucher" -Klasse und "Mitglied" -Klasse, die "Besucher" erweitert haben. Nach dem Erfolg der Authentifizierungsmethode ist es möglich, das Objekt neu zu erstellen?

Dank

Antwort

0

Sie können einen Konstruktor in der Visitor Klasse definieren, die ein anderes Visitor Objekt ausgeführt würden, und kopieren Sie alle Eigenschaften in das neue Objekt. Dann wird dieser Konstruktor in die Klasse Member übernommen und Sie können ein Member Objekt erstellen, indem Sie ein vorhandenes Objekt Visitor kopieren.

0

Die nächste Lösung, die ich mir vorstellen kann, ist, ein neues "Member" -Objekt zu initiieren und das alte Besucherobjekt an den Konstruktor zu übergeben. Im Konstruktor könnten Sie die relevanten Attribute herausziehen und sie dem neuen Objekt zuweisen.

ähnliche Schemata könnten genauso gut funktionieren, aber Sie werden nicht direkt etwas als eine Klasse in PHP zu werfen in der Lage: [

0

Absolut nicht! Nachdem der Benutzer authentifiziert wurde, endet die Anforderung, sodass das Besucherobjekt nicht mehr vorhanden ist. Bei der nächsten Anfrage laden Sie direkt das Member-Objekt (ich nehme an, Sie haben eine Fabrik, die das entsprechende Objekt für jeden Benutzertyp instanziieren kann)

Verwandte Themen