Maison  >  Article  >  développement back-end  >  Gestion des erreurs fatales graves PHP : erreur fatale PHP : impossible de redéclarer la classe ou la fonction

Gestion des erreurs fatales graves PHP : erreur fatale PHP : impossible de redéclarer la classe ou la fonction

墨辰丷
墨辰丷original
2018-05-26 10:46:192591parcourir

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 {} 
?>

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(&#39;SomeClass&#39;) != true) 
{ 
 //put class SomeClass here 
}

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 
{ 
 

} 
?>

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(&#39;pageModule&#39;)){ 
require_once(PATH_site.&#39;fileadmin/scripts/class.page.php&#39;);
}

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn