Dans le processus d'utilisation de PHP pour le développement, vous rencontrerez parfois l'erreur « Erreur fatale PHP : impossible de redéclarer ». Cette erreur se produit généralement dans les situations suivantes :
Inclure/exiger le même fichier plusieurs fois dans le code PHP.
Une fonction/classe portant le même nom qu'une fonction/classe existante est définie dans le code.
Cette erreur empêchera le programme de poursuivre son exécution. Afin de résoudre ce problème, nous devons comprendre sa cause et sa solution. "Cause" "Impossible de redéclarer" l'erreur en PHP.
Par exemple, si nous avons un fichier nommé "test.php":
function test(){
echo "Test function.";
?>
Ensuite, référencez-le à plusieurs reprises dans d'autres fichiers lorsque ce fichier est utilisé, cette erreur apparaîtra :
// Fichier "index.php"
require_once "test.php";
2. Définissez des fonctions lourdes ou classes avec le même nom
PHP enregistrera les fonctions et classes définies en mémoire Si une fonction/classe avec le même nom qu'une fonction existante est définie dans le programme, une erreur "Impossible de redéclarer" se produira.
Par exemple, une fonction nommée "test" est définie dans le code :
function test() {
echo "Test function.";
}
Cependant, dans d'autres blocs de code, si une fonction du même nom est définie, elle le fera. une erreur se produit :
function test() {
echo "Test function is redefined.";
}
Solution
1. Évitez de référencer des fichiers à plusieurs reprises
En PHP, afin d'éviter de référencer des fichiers à plusieurs reprises, nous devons utiliser la fonction require_once ou include_once.
Les fonctions require_once et include_once fonctionnent de la même manière que les fonctions require et include, sauf qu'elles garantissent qu'un fichier n'est référencé qu'une seule fois.
Nous modifions l'exemple ci-dessus :
// Fichier "index.php"
require_once "test.php"require_once "test.php" // Il a été cité et ne sera plus cité ici
2 .Évitez de définir des fonctions ou des classes avec le même nom
Afin d'éviter de définir des fonctions ou des classes avec le même nom, nous devons faire attention à la convention de dénomination du code et à la structure du code lors de l'écriture du code. On peut également éviter de définir des fonctions ou des classes de même nom grâce aux méthodes suivantes :
Méthode 1 : Avant de définir une fonction, vous pouvez d'abord déterminer si la fonction existe déjà, par exemple :
if (!function_exists('test' )) {
function test() { echo "Test function."; }
}
Méthode 2 : Utiliser l'espace de noms. PHP 5.3 a introduit les espaces de noms. Nous pouvons utiliser des espaces de noms pour distinguer et éviter les fonctions et classes portant le même nom.
Par exemple :
// Définissez l'espace de noms Test
namespace Test;class Test {public static function sayHello() { echo "Hello world!"; }
utilisez TestTest;
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!