
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.

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

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.

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.

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.
9870800cookie-check“Schwerwiegender Fehler: Neudeklaration nicht möglich “yes