Можно ли удалить объявление функции?

remitmaster

Новичок
Можно ли удалить объявление функции?

Имеется большой проект, на страницу подключаю скрипт с функциями (require_once) в итоге ошибка вида

Fatal error: Cannot redeclare getname() in /...functions.php on line 90
Я так понял что функция объявляется на данной странице 2 раза, если не прав то просьба поправить. Из моих соображений вытекает вопрос: можно на этой странице удалить объявление это функции, она на странице не используется.


Заранее спасибо! :)
 

HraKK

Мудак
Команда форума
Например кнопкой delete, back space.
Можешь комбинацией insert + много space
можешь выделить и вырезать/удалить
можешь выделить и нажать пробел.
Как фантазия позволит в общем.
 

remitmaster

Новичок
Простите если не так что написал и не так спросил. Мне удалять в прямом смысле этого слова не надо. Мне нужно только чтобы при подключении на этой странице эта функция не объявлялась и все.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
remitmaster
Извини, но постановка вопроса
только чтобы при подключении на этой странице
выглядит, мягко говоря, непонятно.

Объясни, пожалуста, зачем тебе это понадобилось.
Что ты хочешь сделать?
 

remitmaster

Новичок
Есть файл в котором содержится набор функций, при подключении этого файла на странице появляется ошибка, видимо это функция подключена уже, что и ведет по моему мнению к ошибке


Fatal error: Cannot redeclare getname() in /...functions.php on line 90


вопрос: как при подключении этого файла как бы отключить эту функцию, чтобы она второй раз не объявлялась, не удаляя ее из самого файла естественно.
 

zerkms

TDD infected
Команда форума
подключать файл с определением функции 1 раз
 

remitmaster

Новичок
Спасибо всем за ответы, видимо нет стандартного решения, буду разбираться!

Еще раз всем спасибо!
 

С.

Продвинутый новичок
Спасибо всем за ответы, видимо нет стандартного решения, буду разбираться!
Стандартное решение есть! Как тебе и сказали, подключать файл только один раз. У тебя подключается дважды, вот и разбирайся почему.
 

Wicked

Новичок
эта функция запросто может содержаться в разных файлах - поэтому надо поискать другие ее определения в других файлах.

если файл с этой функцией только один, то нужно убедиться, что этот файл всегда подключается только с помощью require_once и include_once.

http://phpfaq.ru/debug + [m]get_included_files[/m]() + [m]get_defined_functions[/m]()
 

dimagolov

Новичок
у меня на win32 версия 5.1.4 лажалась с _once, то есть повторно происходили подключения при циклических включениях. причем изменением последовательности включений удавалось это обходить. обновление до 5.2.6 решило проблему.
 

weregod

unserializer
Re: Можно ли удалить объявление функции?

если ф-ция getname во всех файлах делает одно и то же, наименее затратным будет обернуть её в следующий if:
PHP:
if (!function_exists('getname')) {
    function getname(...)
    {
    ...
    }
можно использовать разные префиксы в описаниях и вызовах разных ф-ций getname:
PHP:
function entity1_getname(...)
{
...
}
function entity2_getname(...)
{
...
}
так же можно затолкать эти ф-ции в разные статические классы
 

weregod

unserializer
dimagolov
а это нужно сказать тем, кто спроектировал говнокод, с которым теперь человеку пришлось работать ;)
то, что в нескольких файлах одноимённая описана ф-ция, наводит на мысли о говнокоде
 

dimagolov

Новичок
weregod, ты не понял. почитай мой камент про 5.1.4, проблема была совсем не в том, что в нескольких файлах одноименная ф-я.
 

weregod

unserializer
dimagolov, я коммент понял, просто топик-стартер не озвучил версию пхп, а я так, предположений и лекарств скоропостижно наделал
 
Сверху