2009-09-15 4 views
1

La deuxième fois que je suis tombé sur cette ...PHP4 - « Erreur fatale: ne peut pas fonctionner redéclarer() »

J'ai fonction foo() qui a une fonction d'aide à l'intérieur appelé formatStr() qui est utilisé dans un appel array_map(). Quand j'appelle foo() plus d'une fois dans un script, je reçois une "erreur fatale: ne peut pas redelcare formatStr()". Ce qui m'amène à croire que formatStr() n'est pas déclaré localement dans la fonction mais globalement. Est-ce vrai? Pouvez-vous contourner cela avec function_exists()?

Merci

Répondre

2

Vous avez une fonction définie dans la fonction foo()? Si c'est le cas, déplacez-le.

Sinon, envelopper formatStr() dans function_exists() ...

if (!function_exists('formatStr')) 
{ 
    function formatStr() 
    { 
     // Your function code 
    } 
} 
+0

Je sais, mais il semble mal muck l'espace de noms global avec une fonction d'assistance. Je suppose que je vais devoir attendre pour mettre à jour vers PHP5 afin que je puisse utiliser des fonctions anonymes. Merci. – frio80