1. Fehlertyp: Schwerwiegender PHP-Fehler
Fehlertyp: Schwerwiegender PHP-Fehler
Schwerwiegender Fehler: (a) (zuvor in (b) deklariert) kann in (c) in Zeile (d) nicht erneut deklariert werden
2. Fehlerbeschreibung:
Dieser Fehlerbericht weist darauf hin, dass Sie versuchen, eine bereits definierte Funktion neu zu definieren, wobei
a---- gibt einen wiederholt definierten Funktionsnamen an;
b----Der Dateiname und die Zeilennummer, als die Funktion zum ersten Mal definiert wurde;c----Der Dateiname, wenn die Funktion zum zweiten Mal definiert wird;
d----Die Zeilennummer, wenn die Funktion zum zweiten Mal definiert wird.3. Gründe und Lösungen:
Ursache: Sie verwenden denselben Namen zweimal hintereinander, um eine Funktion zu definieren, z. B.
Funktion myFunction(){}
Funktion myFunction(){}
Die Ergebnisse sind wie folgt
Schwerwiegender Fehler: Myfunction()(zuvor in(path):2)in(path) in Zeile 1 deklariert werden kann nicht neu deklariert werden
Lösung:
Suchen Sie die deklarierte Funktion und sehen Sie, welche Anforderungen Sie dazu veranlasst haben, sie erneut zu definieren. Wenn Sie einfach vergessen haben, dass es bereits zuvor definiert wurde, löschen Sie einfach eine der Deklarationen. Beispielsweise sind Ihre Skriptdateien äußerst verwirrend angeordnet und Sie verwenden möglicherweise eine große Anzahl von include() und anderen Funktionen, was es für Sie schwierig macht, Ihre Ideen aus dem verwirrenden Code herauszusortieren. Wenn Ihre PHP-Version jedoch relativ neu ist (PHP 5.3.8), scheint es, dass Sie Namespaces verwenden können, um die Situation zu lösen, in der es wirklich notwendig ist, Funktionen wiederholt zu definieren.
4 PHP-Beispiele für die Behandlung und Lösung schwerwiegender schwerwiegender Fehler sind wie folgt
1) Eine Klasse mit demselben Namen wird zweimal in derselben Datei deklariert:
Zum Beispiel:
Klasse Foo {}
// etwas Code hier
Klasse Foo {}
?>
Beim zweiten Foo wird ein Fehler gemeldet.
Lösung: Entfernen Sie das zweite Foo oder benennen Sie es um.
Um wiederholte Definitionen zu verhindern, können Sie bei der Definition einer neuen Klasse feststellen, ob die Klasse bereits existiert:
if(class_exists('SomeClass') != true)
{
//Klasse SomeClass hier einfügen
}
if(class_exists('SomeClass') != true)
{
//Klasse SomeClass hier einfügen
}
2) Fügen Sie wiederholt dieselbe Klassendatei ein:
Zum Beispiel: für eine bestimmte Klassendatei some_class.php, in a.php
include „some_class.php“;
include „some_class.php“;
In b.php
include „a.php“;
include „some_class.php“;
include „a.php“;
include „some_class.php“;
wird einen Fehler melden.
Lösung: Ersetzen Sie alle oben genannten include durch include_once
3) Diese Klasse ist eine integrierte Klasse in der PHP-Klassenbibliothek.
Beurteilungsmethode: Schreiben Sie in eine leere Datei
Klasse Com
{
}
?>
Zu diesem Zeitpunkt wird die Meldung „Klasse Com kann nicht neu deklariert werden“ angezeigt, was darauf hinweist, dass es sich bei dieser Klasse um eine in PHP integrierte Klasse handelt. Kann nicht verwendet werden.
Vermeiden Sie außerdem die Verwendung zu beliebter Klassennamen, z. B. „Com“. Diese Klasse ist unter Linux möglicherweise normal, kann jedoch nicht in einer Windows-Umgebung ausgeführt werden.
Merken Sie sich eine andere online gefundene Lösung. Sie kann in manchen Situationen nützlich sein. Denken Sie zuerst daran
if (!class_exists('pageModule')){
require_once(PATH_site.'fileadmin/scripts/class.page.php');
}
Die obige Methode gilt nicht für die Methode zum Laden der PHP-Klasse __autoload, sie kann jedoch bereits das Problem lösen, dass __autoload automatisch geladen wird. Wir müssen nur den gleichen Klassennamen finden und ihn umbenennen.