Ich migriere eine PHP 5.2.x-Anwendung auf einen neuen 5.2.x-Server. Der alte Server startete vor vielen Jahren als PHP 4.0 Server und wurde im Laufe der Zeit auf PHP 5.2 aktualisiert. Eines unserer Module hat eine Funktion, die neu deklariert wird, wenn dieses Modul mehrfach verwendet wird. Wir können das leicht beheben, aber wir sind verblüfft darüber, wie es jemals funktioniert haben könnte.Redeclare-Funktion funktioniert auf alten Server, aber nicht neu
auf dem neuen Server wird es nicht mit einem erwarteten:
Fatal error: Cannot redeclare function
Das Problem ist, dass auf dem alten Server war es immer die Funktion wieder zu erklären! Gibt es hier eine PHP-Einstellung oder eine spezielle Verwendung, die auf einem Server funktioniert, aber nicht auf einem anderen?
Vielen Dank!
Edit Immer noch versuchen, durch zu gießen, wie dies möglich ist. Die Website FATAL-Fehler, aber Ausführung nach diesem Fehlerpunkt.
Sind Sie sicher? Ohne etwas ** seriöses ** [Hacker] (http://www.php.net/manual/en/ref.runkit.php) können Sie eine PHP-Funktion niemals neu deklarieren. – ceejayoz
PHP4 erlaubte Funktionsredeklarationen, PHP5 nicht. Sie müssen das Modul in ein include_once/require_once ändern oder die Funktionsdefinition in ein 'if (! function_exists ('...')) {...}' Block umbrechen. –
@MarcB Habe ich PHP5 so lange benutzt? Ich könnte schwören, PHP4 erlaubt es auch nicht. – ceejayoz