[PHP] Accés dans un tableau d'objets...

Accés dans un tableau d'objets... [PHP] - PHP - Programmation

Marsh Posté le 03-08-2004 à 09:43:01    

Bonjour à tous,
 
je n'arrive pas à savoir comment peut-on accéder à un attribut ou une méthode d'un objet dans un tableau d'objets.
 
Je m'explique à travers un exemple :
 
Si on a un type d'objet 'Fruit', avec 2 attributs 'poids' et 'taille', et que l'on fait un tableau de 'Fruit' :
 
$fruits[0] = new Fruit($poids1,$taille1);
$fruits[1] = new Fruit($poids2,$taille2);
$fruits[2] = new Fruit($poids3,$taille3);
 
J'ai donc bien ici un tableau contenant 3 objets 'Fruit' différents.  
J'aimerai à présent pour récupérer la valeur '$poids2' à partir de ce tableau... mais je ne sais pas comment faire  :(  
 
Cela doit être du genre : $fruit[2]->poids;  
 
Je pense que ce n'est pas sorcier, mais je n'ai pas réussi à trouver la solution...
 
Je remercie d'avance celles ou ceux qui pourront m'aider.
 
Baba

Reply

Marsh Posté le 03-08-2004 à 09:43:01   

Reply

Marsh Posté le 03-08-2004 à 10:13:17    

Si ta classe ressemble à un truc dans ce style :
 

Code :
  1. class Fruit
  2. {
  3. var $poids;
  4. var $taille;
  5. function Fruit($poid, $taille)
  6. {
  7.  $this->poids = $poid;
  8.  $this->taille = $taille;
  9. }
  10. }


 
Alors il faut bien faire un truc sans ce genre :
 

Code :
  1. $test[0] = new Fruit(5,12);
  2. $test[1] = new Fruit(7,9);
  3. echo $test[1]->poids;


 
Maintenant est-ce une faute de frappe ou as tu écris ça comme ça :
 

Citation :

$fruits[0] = new Fruit($poids1,$taille1)


Citation :

$fruit[2]->poids;


Message édité par Dj YeLL le 03-08-2004 à 10:14:03
Reply

Marsh Posté le 03-08-2004 à 10:23:18    

non ce n'étais pas une faute de frappe.  
Je voulais juste donner un nom différents à mon tableau d'objets...


Message édité par babthefox2002 le 03-08-2004 à 10:24:20
Reply

Marsh Posté le 03-08-2004 à 10:28:20    

Merci beaucoup ça marche bien, mon soucis est que moi je mettais des guillemets autour de ma commande :
 
   echo "$fruits[2]->poids";
 
Donc ça ne marchait pas...


Message édité par babthefox2002 le 03-08-2004 à 10:30:50
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed