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

墨辰丷
Libérer: 2023-03-28 06:48:01
original
2658 Les gens l'ont consulté

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

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!