Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: динамическое изменение классов

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
White
Отправлено: 28 Июля, 2011 - 09:56:57
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




Насколько я понимаю, являясь языком с классовым подходом к ООП php не поддерживает динамическое изменение методов объекта, как в языках с прототипированием.
Довольно часто возникают ситуации, в которых хотелось бы (скажем по условию) расширить (изменить) методы одного класса методами другого, но за неимением такой возможности приходится применять другие способы. т.е. как в примере с полиморфизмом есть один класс с общими свойствами, и несколько его потомков. Разница в том, что создавая экземпляр объекта мы знаем что это объект родительского класса, а методами какого из потомков его расширить, определимся позже.
Хотелось бы знать планируется ли что-то подобное в новых версиях php, ну и вообще услышать о недостатках такого подхода.


-----
if(time()>1356048000) die();
 
 Top
White
Отправлено: 29 Июля, 2011 - 09:59:05
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




и все таки определенные шаги в этом направлении сделаны http://php.net/manual/ru/languag....overloading.php
по слухам в php6 будет возможно динамическое создание классов. похоже создатели php хотят совместить классовый подход и прототипирование...


-----
if(time()>1356048000) die();
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB