![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
AztEK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 723 Регистрация: 4.1.2005 Репутация: 6 Всего: 18 |
Необходимо удалить ффункцию, чтобы потом можно было задать новую с этим же именем и не было redeclaire. В мануале о адресу http://ru.php.net/manual/ru/ref.funchand.php упоминается только unregister_tick_function, но это похоже не то...Помогите?
-------------------- Linux is like wigwam -- no windows, no gates, apache inside. |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
А зачем? Это противоречит принципам проектирования. Если тебе нужно реализовать перегрузку, то используй наследование в классах или создавай функцию динамически через create_function.
|
|||
|
||||
S.A.P. |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 3 Всего: 71 |
AztEK, собственно а как ты себе предсталяешь перегрузку функций в PHP? В PHP нет вложенных функций, функции компилируются сразу и вызываются вне зависимости от того, где были объявлены: выше, ниже, правее, левее... В соответствии с этим порядок компиляции твоих функций не зависит от логики программы, разве что через include из подключать.
|
|||
|
||||
Serkys |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1061 Регистрация: 19.4.2004 Репутация: 4 Всего: 22 |
Вложенные функции есть (если я это понятие правильно понимаю). Можно объявить функцию внутри функции, и вложенная функция не будет определена до первого вызова родительской функции. |
|||
|
||||
AztEK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 723 Регистрация: 4.1.2005 Репутация: 6 Всего: 18 |
2all
Пишу движок со сменными модулями. Если какой-то модуль регистрирут функцию, а другой регистрирует свою с этим же именем, получаем redeclaire... Serkys, хм...ты меня на мысль натолкнул...у меня модуль инклудится внутри функции(метода класса, если точнее), полученный контент буферизируется и складируется куда надо... При инклуде нового модуля вызывается новая версия этой функции... В этом случае можно что-нибудь сделать? Добавлено @ 06:05 Сегодня поэкспериментирую -------------------- Linux is like wigwam -- no windows, no gates, apache inside. |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Объекты надо использовать...
|
|||
|
||||
AztEK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 723 Регистрация: 4.1.2005 Репутация: 6 Всего: 18 |
В смысле? Каждый модуль - отдельный объект?? -------------------- Linux is like wigwam -- no windows, no gates, apache inside. |
|||
|
||||
Serkys |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1061 Регистрация: 19.4.2004 Репутация: 4 Всего: 22 |
AztEK, а почему нельзя сделать так:
В конце названия функции подставляется microtime() и пишется в сессии какие-нибудь, или типа того. При вызове функции это microtime() достаётся и подставляется к имени функции. |
|||
|
||||
AztEK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 723 Регистрация: 4.1.2005 Репутация: 6 Всего: 18 |
Serkys, можно конечно, но это самый крайний вариант
![]() ![]() P.S. Как я оказывается плохо знаю PHP... -------------------- Linux is like wigwam -- no windows, no gates, apache inside. |
|||
|
||||
Serkys |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1061 Регистрация: 19.4.2004 Репутация: 4 Всего: 22 |
Можешь через function_exists проверять. Если определена, то в конец цифру. Если цифра есть - то цифру +1.
А для удаления функции я что-то не нашёл... |
|||
|
||||
AztEK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 723 Регистрация: 4.1.2005 Репутация: 6 Всего: 18 |
Serkys это всё равно геморрой сильный...
![]() -------------------- Linux is like wigwam -- no windows, no gates, apache inside. |
|||
|
||||
Endeveit |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 2.6.2006 Репутация: 4 Всего: 7 |
Но всё это от лукавого. Советую пнуть гугл или яндекс на предмет "проектирование и разработка модульной cms", "разработка и проектирование сложных систем", "модульное программирование в пхп" ну и т.д. и т.п. |
|||
|
||||
AztEK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 723 Регистрация: 4.1.2005 Репутация: 6 Всего: 18 |
Endeveit, тот же способ, что и у Serkys'a! Создавать фукнции с динамическим именем я не хочу пока что...
-------------------- Linux is like wigwam -- no windows, no gates, apache inside. |
|||
|
||||
Endeveit |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 2.6.2006 Репутация: 4 Всего: 7 |
||||
|
||||
Azazel |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 7.6.2006 Репутация: нет Всего: нет |
А возможно просто для начала озвучится КОНКРЕТНЫЕ требования для которых данный гемморой надо?
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |