“Schwerwiegender Fehler: Neudeklaration nicht möglich “

Lesezeit: 3 Minuten

Schwerwiegender Fehler Neudeklaration nicht moglich
Fischmann

Ich habe eine Funktion (genau so sieht es oben in meiner Datei aus):

<?php
//dirname(getcwd());
function generate_salt()
{
    $salt="";

    for($i = 0; $i < 19; $i++)
    {
        $salt .= chr(rand(35, 126));
    }

    return $salt;
}
...

Und aus irgendeinem Grund bekomme ich immer den Fehler:

Schwerwiegender Fehler: Generate_salt() (zuvor in /Applications/MAMP/htdocs/question-air/includes/functions.php:5 ​​deklariert) kann in /Applications/MAMP/htdocs/question-air/includes/functions.php nicht online neu deklariert werden 13

Ich kann nicht herausfinden, warum oder wie ein solcher Fehler auftreten konnte. Irgendwelche Ideen?

Dieser Fehler besagt, dass Ihre Funktion bereits definiert ist; was bedeuten kann:

  • Sie haben dieselbe Funktion in zwei Dateien definiert
  • oder Sie haben dieselbe Funktion an zwei Stellen in derselben Datei definiert
  • oder die Datei, in der Ihre Funktion definiert ist, ist zweimal enthalten (also scheint die Funktion zweimal definiert zu sein)

Um beim dritten Punkt zu helfen, wäre eine Lösung zu verwenden include_once anstatt include wenn Sie Ihre einschließen functions.php Datei — kann also nicht mehr als einmal eingefügt werden.

  • Hu ; Ich nehme an, die angegebenen Zeilennummern sind nicht “genau” ; ; oder, nur als Vorsichtsmaßnahme: Sind Sie sicher, dass Sie sich die “richtige” Datei ansehen?

    – Pascal Martin

    23. Dezember 2009 um 16:40 Uhr

  • Dies ist die einzige Datei, die eine generate_salt()-Funktion hat.

    – Fischmensch

    23. Dezember 2009 um 16:42 Uhr

  • was bedeutet, dass es wahrscheinlich mehr als einmal enthalten ist

    – Pascal Martin

    23. Dezember 2009 um 16:45 Uhr

  • Ja, ich denke, das ist es – wie man es repariert, weiß ich nicht, da ich dieses Projekt ziemlich schlecht eingerichtet habe. Ich denke, sollte wahrscheinlich neu starten.

    – Fischmensch

    23. Dezember 2009 um 16:47 Uhr

  • Die Verwendung von include_once anstelle von include (und require_once anstelle von require) hilft in solchen Situationen oft: Auf diese Weise stellt PHP selbst sicher, dass eine Datei nicht mehr als einmal eingebunden wird

    – Pascal Martin

    23. Dezember 2009 um 16:52 Uhr

Schwerwiegender Fehler Neudeklaration nicht moglich
T.Todua

Lösung 1

Deklarieren Sie keine Funktion innerhalb einer Schleife (wie z foreach, for, while…) ! Erklären Sie vor ihnen.

Lösung 2

Sie sollten diese Datei (in der diese Funktion vorhanden ist) nur einmal einschließen. Damit,
anstatt : include ("functions.php");

verwenden: include_once("functions.php");

Lösung 3

Wenn keiner der oben genannten Punkte hilft, fügen Sie vor der Funktionsdeklaration eine Überprüfung hinzu, um eine erneute Deklaration zu vermeiden:

if (!function_exists('your_function_name'))   {
  function your_function_name()  {
    ........
  }
}

Wahrscheinlich binden Sie die Datei functions.php mehr als einmal ein.

Sie können zuerst prüfen, ob der Name Ihrer Funktion nicht vorhanden ist oder nicht, bevor Sie die Funktion By schreiben

  if (!function_exists('generate_salt'))
{
    function generate_salt()
    {
    ........
    }
}

ODER Sie können den Namen der Funktion in einen anderen Namen ändern

Schwerwiegender Fehler Neudeklaration nicht moglich
Mohammed Aslam C

In meinem Fall lag es an einer Funktion innerhalb einer anderen Funktion! Sobald ich die Funktion ausgezogen habe, war der Fehler weg und alles funktionierte wie erwartet.

Diese Antwort erklärt, warum Sie nicht verwenden sollten Funktion innerhalb der Funktion.

Das könnte jemandem helfen.

  • Was ist falsch daran, eine Funktion in eine Funktion aufzunehmen?

    – BSUK

    9. Dezember 2016 um 16:29 Uhr

  • diese Antwort hat mir geholfen

    – David Addoteye

    5. Dezember 2018 um 3:43 Uhr

  • Das war die Erklärung für mein Problem.

    – mach128x

    2. April 2020 um 21:40 Uhr

1646900647 524 Schwerwiegender Fehler Neudeklaration nicht moglich
römisch

Ich hatte ein seltsames Verhalten, als meine *.php.bak (die automatisch von Notepad erstellt wurde) in die Kompilierung aufgenommen wurde. Nachdem ich alle *.php.bak aus dem Ordner entfernt hatte, war dieser Fehler verschwunden. Vielleicht ist dies für jemanden hilfreich.

  • Was ist falsch daran, eine Funktion in eine Funktion aufzunehmen?

    – BSUK

    9. Dezember 2016 um 16:29 Uhr

  • diese Antwort hat mir geholfen

    – David Addoteye

    5. Dezember 2018 um 3:43 Uhr

  • Das war die Erklärung für mein Problem.

    – mach128x

    2. April 2020 um 21:40 Uhr

1646900647 548 Schwerwiegender Fehler Neudeklaration nicht moglich
Fabio sagt, Monica wieder einzusetzen

Ein weiterer möglicher Grund für diesen Fehler ist, dass Ihre Funktion denselben Namen wie eine andere in PHP integrierte Funktion hat. Zum Beispiel,

function checkdate($date){
   $now=strtotime(date('Y-m-d H:i:s'));
   $tenYearsAgo=strtotime("-10 years", $now);
   $dateToCheck=strtotime($date);
   return ($tenYearsAgo > $dateToCheck) ? false : true;
}
echo checkdate('2016-05-12');

bei dem die checkdate Funktion existiert bereits in PHP.

987080cookie-check“Schwerwiegender Fehler: Neudeklaration nicht möglich “

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy