Как добавить метод уже существующему объекту?

Olsufr

Guest
Как добавить метод уже существующему объекту?

Подскажите, можно ли добавить (или переопределить) метод уже существующему объекту?
 

Profic

just Profic (PHP5 BetaTeam)
наследовать класс от класса этого объекта и его инстансировать.
но изврат это полный (если именно про объекты а не классы идет речь) и потому в детали даже вдаваться не буду :)
 

Olsufr

Guest
Автор оригинала: Profic
наследовать класс от класса этого объекта и его инстансировать.
но изврат это полный (если именно про объекты а не классы идет речь) и потому в детали даже вдаваться не буду :)
Понятно, что это изврат.

"наследовать класс от класса этого объекта и его инстансировать"
Спасибо. Profic, a как делается это инстансирование?
 

jer

...
;) инстанцирование - создание объекта класса

может тебе лучше перестать этого хотеть и почитать какую-нибудь умную книжку про ООП?
 

Profic

just Profic (PHP5 BetaTeam)
"инстансирование" - это создание экземпляра класса.

я все равное не понимаю ЗАЧЕМ нужен такой изврат.
и пока не получу ВНЯТНЫЙ ответ продолжать про свой изврат не буду.
 

Olsufr

Guest
ok, исповедь "извращенца" :)

пишется модуль в рамках уже существующей системы классов, объектов. И мне нехватает функциональности уже существующих методов опредленного объекта. И вот, чтобы сохранить объектный стиль программирования и хочу добавить метод к объекту.
 

jer

...
ха, так это тебе к классу надо добавить метод. ну раз ты этого не знаешьб то точно читай умную книжку.
 

Olsufr

Guest
Автор оригинала: jer
ха, так это тебе к классу надо добавить метод. ну раз ты этого не знаешьб то точно читай умную книжку.
Да не к классу, а к объекту.
Объект я получаю уже готовым (через функцию) и с ним уже надо мне работать.
 

Profic

just Profic (PHP5 BetaTeam)
и что мешает сделать еще один класс - наследник от искомого и изменить функцию чтобы она возвращала объект нужного класса?
 

Olsufr

Guest
Автор оригинала: Profic
и что мешает сделать еще один класс - наследник от искомого и изменить функцию чтобы она возвращала объект нужного класса?
Функция не возвращает ничего: объект передается по ссылке, а потом уже вне моей функции (методе) данные объекта сохраняются в базе данных.
На момент получения объекта моей функцией он содержит данные, к которым я добавляю еще свои и все это, как уже сказал, потом сохраняется в базе данных.
 

Profic

just Profic (PHP5 BetaTeam)
в общем забей
все равно не сделаешь - используй функции
 

Profic

just Profic (PHP5 BetaTeam)
НЕ БУДУ
1) это криво
2) это очень криво
3) нет гарантии, что вообще заработает
4) это совсем криво
5) если вы все же есть желание этим воспользоваться - см. пункты 1-4.
 

Profic

just Profic (PHP5 BetaTeam)
Olsufr
хех, уговорил, но я все-равно озвучу только саму идею. ибо дальше ее обсуждать все равно нет смысла - кривизна кривезн :)
через eval. т.е. узнаем имя класса, создаем его потомок и заменяем его экземпляром родитель.

про все "но", "если" и т.п. сам догадаешься?
 

Olsufr

Guest
Всем спасибо за ответы.

Profic, буду экспериментировать, спасибо за идею.
 
Сверху