Forum Clubic

[RESOLU]Comment recuperer un tableau d objet ?

Bonjour,

Voila j 'ai creer une classe, dont une des methode de recherche renvoi un tableau d’objet de cette classe.

apres avoir appeler cette methode via un objet de la classe instancié , et bien je n arrive pas a relire les ces objet…

lorsque je fait un print_r de la variable cense recuperer les objet, j’ai bien un tableau, mais qui contient des object de cette classe.

Mais je ne sais pas comment les recuperer.

Pourriez vous m’aider svp… je suis completement perdu et mon projet est urgent.

merci d’avance

Petite precision, j’ai bien essayer d’appeler un nouveau constructeur en lui passent un des objet du tableau, mais cela ne semble pas marché…

hummm je crois, si j’ai bien compris ce que tu veux faire, que ce n’est pas faisable

Par contre tu peux créer un tableau d’objet
$tableau[0] = new monObjet();
$tableau[1] = new monObjet();

Mais à l’intérieur de ta classe, tu ne peux pas accéder à la liste des objets instanciés

gné?

tu veux faire quoi? ton print_r affiche quoi?
tu connais foreach ? (http://www.php.net/foreach) ?

Pour etre plus explicite, :

[cpp]

// On creer un objet contact initialiser par les valeur de recherche
$oContact = new Contact (null,$nom); // Seul le nom a ete specifier

// On vas effectuer la recherche, les objet matchant avec le nom seront contenu dans le tableau $matchContact, un tableau d’objet Contact
if ($oContact->rechercheContact($matchContact)) {
// la fonction n as pas retourne d erreurs. On regarde le tableau d objet
if (count($matchContact)!=null) {
// On affiche les contact matchant
print_r($matchContact); // dump tu tableau d objet
for ($i=0;$i<count($matchContact);$i++) {
echo $matchContact[$i]->idcontact; // n affiche rien
echo $matchContact[$i]->nomcontact; // n afiche rien
}
[/cpp]

Voici le dump du tableau d objet
[cpp]
Array ( [0] => Contact Object ( [idcontact] => 1 [nomcontact] => utilisateur1) [1] => Contact Object ( [idcontact] => 2 [nomcontact] => utilisateur2) )
[/cpp]

pour ce qui est de ton rechercheContact, tu devrais renvoyer directement un tableau avec itérateur, puis tester si count(…) == null, c’est pas très bon, c’est 0. ou rien. Et puis, un foreach t’éviterais des embrouilles :

[cpp]/* retour array() si contact non trouvé */
foreach ($oContact->rechercheContact($matchContact) as $match )
{
print_r($match);
}[/cpp]

“tu devrais renvoyer directement un tableau avec itérateur”
Tu veut dire au lieu de renvoyer un objet, je renvoi les variable privé de chaque object comme tableau , c est bien ca?

Mais si c bien ca, est ce normal que l’on doit faire de cette maniere ? Est ce que php ne permet pas de relire un tableau d’objet ?

merci pour vos reponse

Et bien ca me gene un peu de dire ca, mais je crois avoir trouve l’erreur, qui se situe pas la ou je cherchais.

En fait lorsque [cpp]
$oContact = new Contact (null,$nom); // Seul le nom a ete specifier
[/cpp]

le constructeur ne prend le premier parametre ( le prototype est Contact ($nom="")

Du coup les parametre etait decale, et les tableau erroné.

Merci pour vos reponse rapide qui m’on aider a trouver le pb.

Ce que je veux dire c’est que tu renvoi un tableau contenant tous les éléments qui ont concordés avec ta recherches, ou array() si le tableau est vide. ex:

Ceci dit, j’avais pas vu que ton code utilisais un certain objet.