[PHP5] probleme function

atx -  
 atx -
Bonjour,

ca fait un moment que je bloque. Je debute en php5 et je n arrive pas a trouver mon erreur. J'ai une class qui stock des objets d'une autre class.
La fonction getList permet d'objtenir la liste des objets stocké, apres les avoir trié avec une autre fonction (sortList). Voici les 2 fonctions:

public function getList()
{
sortList();
foreach($this->list as $elem)
return $elem;
}

public function sortList()
{
function cmp($a, $b)
{
if ($a->prio == $b->prio) {
return 0;
}
return ($a->prio < $b->prio) ? -1 : 1;
}

usort($this->list, "cmp");
}

j'utilise usort pour le tri du tableau.
lorsque je j'appele getList() il me renvoi une erreure..

si quelqu'un a une idee... merci d'avance

2 réponses

  1. Templier Nocturne Messages postés 9989 Statut Membre 1 107
     
    il te donne quoi comme erreur pour commencer ? ;)
    0
  2. Utilisateur anonyme
     
    Bonjour,

    Je suppose que les fonctions sont des méthodes de la classe non ?

    Dans ce cas il faut faire $this->sortList(); et nom pas sortList();

    Mais la méthode getList(), à quoi sert le foreach ? parce que tel quelle est écrite, elle renvoie seulement le premier élément du tableau $this->list, après un return, la fonction s'arrête forcément
    0
    1. atx
       
      ah ok merci,
      et si je fais un echo a la place du return ca marchera ?

      edit: avec echo ca marche pa non plus :x
      0
    2. Templier Nocturne Messages postés 9989 Statut Membre 1 107
       
      tu as possibilité de faire une variable temporaire :

      foreach($this->list as $elem)
      $x ++;
      $a[$x] = $elem; 
      return $a


      comme ça, tu te retrouve avec un tableau :)
      0
    3. atx
       
      merci je vais essayer ca
      0
    4. atx
       
      le return marche mais jai tjrs le probleme avec la fonction sortList. elle sert a trier des objets par priorité (variable prio)
      0
    5. Utilisateur anonyme
       
      A quoi sert getList ?

      a trier et puis rendre le tableau ?
      Si c'est ça le code serait ceci :
      public function getList()
      {
      $this->sortList();
      return $this->list;
      } 
      
      0