2012-04-12 3 views
0

Есть ли простой способ переделать родительский объект в качестве дочернего класса, предпочтительно с помощью метода родительского класса.PHP OOP: Повторное воспроизведение родительского объекта как дочернего класса

Например, у меня может быть класс «Посетитель» и класс «Член», который расширяет «Посетитель». После успешного использования метода аутентификации можно восстановить объект?

Благодаря

ответ

0

Вы можете определить конструктор в Visitor класса, который будет принимать другой Visitor объект и скопировать все свойства в новый объект. Тогда этот конструктор будет унаследован классу Member, и вы сможете создать объект Member, скопировав существующий объект Visitor.

0

Ближайшее решение, о котором я могу думать, это инициировать новый объект «Member», передавая старый объект посетителя конструктору. В конструкторе вы можете вытащить соответствующие атрибуты и назначить их новому объекту.

Подобные схемы могли бы работать так же хорошо, но вы не сможете напрямую бросить что-то, как класс в PHP: [

0

Абсолютно нет! После аутентификации пользователя запрос заканчивается, поэтому объект Visitor больше не существует. В следующем запросе вы загружаете непосредственно объект Member (я предполагаю, что у вас есть что-то вроде фабрики, которая знает, чтобы создать экземпляр соответствующего объекта для каждого типа пользователя)

Смежные вопросы