lundi 1 avril 2013

Fatal error: Cannot redeclare function

Vous qui débuté (ou pas ?) en PHP avez déjà rencontré l'erreur : "Fatal error: Cannot redeclare function"

Cette erreur signifie qu'une fonction portant le même nom existe déjà dans le programme.

La plupart du temps, c'est parce que que votre script ce retrouve englobé dans un plus gros qui a déjà une fonction qui porte le même nom.

Il existe une façon très simple d'éviter cette erreur : tester si la fonction existe déjà avec la fonction PHP function_exists()

Exemple :

<?php
if(!function_exists('maFonction'))
{
    function maFonction($argument)
    {
        return $argument;
    }
}
?>


En gros, on pourrais dire ceci : Si la fonction maFonction n'existe pas, alors maFonction...

Vous pouvez aussi retrouver la même chose pour les classes (class_exists()), interfaces (interface_exists()), peut être même d'autre que je ne connais pas.


L'arrivée des "namespaces" qui sont dors et déjà là avec PHP 5.3.0 permettra d'éviter les collisions de nom.

Aucun commentaire:

Enregistrer un commentaire