2010-12-13 7 views
0

Je suis en train d'exécuter une fonction simple, quelque chose à l'effet de (pseudo-code)Fonctions PHP, erreur de syntaxe?

function sayBlah() 
{ 
    return "blah"; 
} 

$sayit = sayBlah(); 

echo $sayit; 

Mais je ne cesse de faire passer le message d'erreur suivant:

Fatal error: Cannot redeclare sayBlah() previously declared on line X

+5

Ce code seul ne générera pas cette erreur. Vous avez trop simplifié. –

+0

Aussi, avez-vous enquêté sur "ligne X"? Et pourquoi appelleriez-vous une fonction 'sayBlah'? – mario

+0

Le message d'erreur n'est-il pas explicite? Vous avez redéclaré cette fonction précédemment déclarée à la position mentionnée. – Gumbo

Répondre

3

Ceci est probablement dû lorsque vous inclure un fichier deux fois. Parfois, ce n'est pas trivial, car les numéros de ligne dans le message d'erreur correspondent au fichier dans lequel il est inclus.

à savoir nous avons trois fichiers. fichier A. fichier B, comprend le fichier A. fichier C, inclut le fichier A et le fichier B.

Ensuite, si vous déclarez une fonction dans le fichier A, il sera déclaré deux fois parce que vous incluez le fichier A deux fois. Une fois directement, et une fois de plus indirectement.

Vous pouvez résoudre ce problème en remplaçant vos appels require/include par respectivement require_once ou include_once.

+0

C'était tout à fait ça! Je vous remercie!! – redconservatory