IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Copie d'un objet référencé dans un tableau


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 58
    Points : 30
    Points
    30
    Par défaut [Tableaux] Copie d'un objet référencé dans un tableau
    Bonjour à tous !

    J'ai un petit soucis qui je pense est extrêment simple à résoudre, mais où mon manque de maitrise de PHP m'empêche de trouver la réponse... y compris sur Google ou ici...

    En gros j'ai un objet "$o" qui a pour variable un tableau "$tab". J'ai une référence "$ref" vers un objet que je ne peux déterminer (elle est affectée par retour de la fonction "function()"). Mon but c'est de réaliser une boucle où chaque nouvel objet référencé soit ajouté dans le tableau. J'ai pour l'instant abouti à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while($ref->function())
    {
        $o->tab[] = $ref;
    }
    Vous aurez compris le problème : à la fin de ma boucle j'aurais un tableau contenant des références vers le dernier objet référencé par function(), bref une liste qui au final contient à chaque fois les mêmes infos si je la "print" par exemple. Comment puis-je réaliser l'ajout de l'objet référencé dans le tableau et non sa référence ?

    Merci d'avance !

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 440
    Points : 15 814
    Points
    15 814
    Par défaut
    peut-être quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while(($f = $ref->function()) !== NULL)
    {
        $o->tab[] = $f;
    }

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 58
    Points : 30
    Points
    30
    Par défaut
    Et bien non !
    C'est function() qui impose la condition et je ne peux l'appeller qu'une fois par boucle.

    Il n'existe pas d'équivalent à une "inversion de référence" ? (un pointeur quoi )

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 440
    Points : 15 814
    Points
    15 814
    Par défaut
    je n'ai pas compris ce que fais cette fonction, donne nous plus de détails

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 58
    Points : 30
    Points
    30
    Par défaut
    Bingo j'ai trouvé : le clonage !

    Mon code devient donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while($ref->function())
    {
        $o->tab[] = clone $ref;
    }
    C'est donc un moyen détourné (PHP ne possède pas l'équivalent du pointeur si j'ai bien compris) ; ça servira peut-être pour certains !

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 58
    Points : 30
    Points
    30
    Par défaut
    En gros function() est défini dans la classe de l'objet référencé ; il modifie certaines des variables de l'objet tout en renvoyant un booléen d'une condition vérifié, qui n'a aucun rapport avec l'existence ou non de l'objet.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Obtenir une copie de l'objet VISU dans une nouvelle fenêtre
    Par dakota56 dans le forum IGN API Géoportail
    Réponses: 9
    Dernier message: 22/06/2011, 17h06
  2. Réponses: 3
    Dernier message: 22/03/2007, 14h09
  3. mon programme refuse de faire comme il devrais quand mes objets sont dans des tableau
    Par alain57 dans le forum Interfaces Graphiques en Java
    Réponses: 6
    Dernier message: 08/02/2007, 09h29
  4. [objet] appeler une méthode d'objets contenus dans un tableau (iterator ?)
    Par psychomatt dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 21/09/2006, 17h28
  5. Réponses: 1
    Dernier message: 14/06/2006, 19h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo