Я переношу приложение PHP 5.2.x на новый сервер 5.2.x. Старый сервер фактически запускался как сервер PHP 4.0 много лет назад и с течением времени обновлялся до PHP 5.2. Один из наших модулей имеет функцию, которая получает redeclared, если этот модуль используется более одного раза. Мы можем легко исправить это, но мы озадачены тем, как он мог работать.Функция Redeclare работает на старом сервере, но не является новой
На новом сервере он не сможет с ожидаемым:
Fatal error: Cannot redeclare function
Проблема заключается в том, что на старом сервере он всегда был повторно объявить функцию! Есть ли здесь параметр PHP или специальное использование, которое заставляет его работать на одном сервере, но не в другом?
Спасибо!
Редактировать По-прежнему пытается пролить, как это возможно. Ошибки сайта FATAL, но имеет выполнение после этой точки ошибки.
вы уверены? Без каких-либо ** серьезных ** [хакеров] (http://www.php.net/manual/en/ref.runkit.php) вы никогда не сможете обновить функцию PHP. – ceejayoz
PHP4 допускает переопределения функций, PHP5 - нет. вам придется изменить модуль на include_once/require_once или обернуть определение функции в блок 'if (! function_exists ('...')) {...}'. –
@MarcB Я действительно давно использовал PHP5? Я могу поклясться, что PHP4 тоже этого не допускает. – ceejayoz