Cet article présente principalement la gestion des erreurs fatales graves de PHP : Erreur fatale php : Impossible de redéclarer une classe ou une fonction, les amis dans le besoin peuvent s'y référer
Type d'erreur : Erreur fatale PHP.
Type d'erreur : Erreur fatale PHP
Erreur fatale : Impossible de redéclarer (a) (précédemment déclaré en (b)) en (c) à la ligne (d)
2 . Description de l'erreur :
Ce rapport d'erreur indique que vous essayez de redéfinir une fonction déjà définie, où
a---- indique un nom de fonction défini à plusieurs reprises ; b----Le nom du fichier et le numéro de ligne lorsque la fonction a été définie pour la première fois
c----Le nom du fichier lorsque la fonction a été définie pour la deuxième fois
d----; Non. Le numéro de ligne lorsque la fonction est définie une deuxième fois.
3. Raisons et solutions :
Cause : Vous utilisez le même nom deux fois de suite pour définir une fonction, comme
fonction maFonction () {}
fonction maFonction(){}
Le résultat est le suivant
Erreur fatale :Impossible de redéclarer mafonction()(précédemment déclarée dans(chemin):2)in( path) en ligne 1
Solution :
Trouvez la fonction déjà déclarée et voyez quels besoins vous ont poussé à la définir à nouveau. Si vous avez simplement oublié qu'il a été défini auparavant, supprimez simplement l'une des déclarations. Par exemple, vos fichiers de script sont organisés de manière extrêmement confuse et vous pouvez utiliser un grand nombre de fonctions include() et d'autres fonctions, ce qui vous rendra difficile de trier vos idées dans un code déroutant. Cependant, si votre version de PHP est relativement nouvelle (PHP 5.3.8+), il semble que vous puissiez utiliser des espaces de noms pour résoudre la situation où il est vraiment nécessaire de définir des fonctions à plusieurs reprises.
4 exemples de gestion et de résolution d'erreurs fatales graves PHP sont les suivants
1) Une classe du même nom est déclarée deux fois dans le même fichier :
Par exemple :
<?php
class Foo {}
// some code here
class Foo {}
?>
Copier après la connexion
Une erreur sera signalée au deuxième Foo.
Solution : supprimez le deuxième Foo ou renommez-le.
Afin d'éviter des définitions répétées, vous pouvez vérifier si la classe existe déjà lors de la définition d'une nouvelle classe :
if(class_exists('SomeClass') != true)
{
//put class SomeClass here
}
Copier après la connexion
2 ) Incluez à plusieurs reprises le même fichier de classe :
Par exemple : pour un certain fichier de classe some_class.php, dans a.php
include "some_class.php"
include "; some_class.php";
Dans b.php
incluez "a.php";
incluez "some_class.php";
incluez "a.php";
include "some_class.php";
signalera une erreur.
Solution : Remplacez tous les include ci-dessus par include_once
3) Cette classe est une classe intégrée dans la bibliothèque de classes PHP.
Méthode de jugement : Écrivez
<?php
class Com
{
}
?>
Copier après la connexion
dans un fichier vide. À ce moment, le message Cannot redeclare class Com sera affiché, indiquant que. cette classe est constituée de classes PHP intégrées. Ne peut pas être utilisé.
De plus, évitez d'utiliser des noms de classe trop populaires, tels que Com. Cette classe peut être normale sous Linux mais ne peut pas fonctionner dans un environnement Windows.
Rappelez-vous une autre solution que j'ai trouvée en ligne. Elle peut être utile dans certaines situations. Rappelez-vous
if (!class_exists('pageModule')){
require_once(PATH_site.'fileadmin/scripts/class.page.php');
}
Copier après la connexion
Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.
Recommandations associées :
Interception PHPfatale instance d'erreur
Méthode php pour capturer l'erreur fatale
Erreur fatale php des variables variables : impossible d'utiliser [] pour la lecture
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!