Bonjour,

À l'intérieur d'une classe, j'ai déclaré la fonction suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
/**
 * Trie les enregistrements selon la colonne donnée
 * Paramètres : string $col (Nom de la colonne à trier)
 **/
    function trier($col) {
      //Le paramètre est passé en variable globale pour atteindre la fonction ci-dessous
      $GLOBALS["col"] = $col;
      //Fonction servant à comparer deux véhicules
      function lineicmp($c1, $c2) {
        switch($GLOBALS["col"]) {
          case "id"          : return $c1->getId()       - $c2->getId();
          case "id_emp"      : return $c1->getEmp()      - $c2->getEmp();
          case "ddq"         : return strcasecmp($c1->getDdq()  , $c2->getDdq());
          case "hdq"         : return strcasecmp($c1->getHdq()  , $c2->getHdq());
          case "odt"         : return $c1->getOdt()      - $c2->getOdt();
          case "ort"         : return $c1->getOrt()      - $c2->getOrt();
          case "dfq"         : return strcasecmp($c1->getDfq()  , $c2->getDfq());
          case "hfq"         : return strcasecmp($c1->getHfq()  , $c2->getHfq());
          case "id_route"    : return $c1->getRoute()    - $c2->getRoute();
          case "id_vehicule" : return $c1->getVehicule() - $c2->getVehicule();
        }
      }
      usort($this->c, "lineicmp");
    }
J'ai une autre fonction qui va appeler à deux reprises la fonction trier, ce qui cause me message d'erreur suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Fatal error: Cannot redeclare lineicmp() (previously declared) in /var/www/html/monrepertoite/class/cartes.php:453) in /var/www/html/monrepertoire/class/cartes.php on line 453
Je suppose que c'est probablement que j'utilise mal la notion de callback. Faudrait-il que je sorte ma fonction lineicmp() de trier()?