2014-06-18 2 views
0

Mon script est de retour l'erreur suivante ...PHP étrange "Erreur fatale: Impossible redéclarer" Erreur

Fatal error: Cannot redeclare connecttodatabase() (previously declared in /var/www/api/connecttodatabase.php:4) in /var/www/api/connecttodatabase.php on line 6 

Et voici le fichier connecttodatabase.php ...

<?php 
    function connecttodatabase() 
    { 
     $con = @mysqli_connect("localhost", "name", "password", "database"); 
     return $con; 
    } 
?> 

I ne comprends pas vraiment cette erreur parce que la ligne 6 est juste la parenthèse fermée bouclée (})

Je pense que l'erreur signifie qu'il pense que j'ai déclaré la fonction connecttodatabase() dans différents endroits mais clairement je l'ai fait NT.

+3

Cette fonction est déclarée deux fois. Vous incluez probablement le même fichier où il est défini deux fois. –

+0

pourquoi ne changez-vous pas le nom de la fonction et confirmez. as tu? – zod

+0

L'erreur indique que vous essayez de re-déclarer une fonction sur la ligne 6 qui est déjà déclarée sur la ligne 4. Est-ce que vous avez posté votre code ** complet **? Nous ne pouvons pas vous aider sans en savoir plus sur votre problème. – esqew

Répondre

1

Comme d'autres l'ont dit dans les commentaires, c'est probablement parce que vous avez inclus connecttodatabase.php deux fois dans votre code, et vous définissez certainement la fonction deux fois. Ne te fais pas raccrocher pourquoi c'est la ligne 6; ligne 2 serait plus utile, mais la ligne 6 est où la définition de la fonction se termine, et donc sans doute est lorsque la fonction est définie. Vous pourriez avoir un "un par jour" calendrier de l'année entière sur les idiosyncrasies de PHP et ont assez pour une suite. Comme d'autres l'ont également laissé entendre, un débogage de base confirmerait si vous incluez le fichier plus d'une fois et aussi d'où.

Assurez-vous que votre code utilise include_once ou require_once.

+0

J'ai changé tout mon code en 'require_once' mais le problème est toujours répandu. D'autres suggestions? – user3558410

+0

Les compétences de débogage de base suggèrent d'essayer de consigner une trace au début du fichier pour voir d'où il est inclus. Renommer la fonction serait également un test utile comme cela a déjà été mentionné. – Nick

+0

@Nick Enregistrer un backtrace? Vous savez, vous pouvez simplement faire une recherche de fichier pour 'function connecttodatabase' par rapport au codebase et voilà. – JakeGould

Questions connexes