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 :

[POO] changement de la valeur d'une variable d'une classe


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Supply Chain Manager
    Inscrit en
    Octobre 2002
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Supply Chain Manager

    Informations forums :
    Inscription : Octobre 2002
    Messages : 33
    Points : 40
    Points
    40
    Par défaut [POO] changement de la valeur d'une variable d'une classe
    Bonjour à tous!

    J'ai un petit problème concernant le changement de la valeur d'une variable appartenant à une classe: la valeur modifiée ne "reste" pas...

    Déclaration de la classe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class fichier_type {
       var $nom;
       var $date;
       var $size;
       var $commentaire;
       function fichier_type($n, $d, $s) {$this->nom = $n; $this->date = $d; $this->size = $s;}
       function set_fichier($n, $d, $s) {$this->nom = $n; $this->date = $d; $this->size = $s;}
       function set_comment($c) {$this->commentaire = $c;}
    }
    changement de la valeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    foreach ($tableau_fichiers as $elem)
           {
           if (!strnatcmp($elem->nom, $nom_fichier_commentaires))
    	  {
              $elem->set_comment($commentaire);
              echo "<br>$elem->commentaire : $commentaire";
    	  }
           } // foreach
    Remarquez que dans cette boucle la valeur est affichée est la bonne. Mais, un peu plus loin, je rapelle cette valeur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    foreach ($tableau_fichiers as $elem)
    {echo "<br>$elem->commentaire";} // foreach
    et là plus rien... Quelqu'un a une idée?
    Merci!

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 198
    Points : 8 421
    Points
    8 421
    Billets dans le blog
    17
    Par défaut
    Peut-être que $elem est une copie et non une référence de l'élément du tableau.
    Essaie d'accéder directement à l'élément visé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $n = count($files) ;
    for ( $i = 0 ; $i < $n ; $i++ ) {
        if ( [...] ) {
            $files[$i]->setComment('ton commentaire') ;
        }
    }

  3. #3
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par Séb.
    Peut-être que $elem est une copie et non une référence de l'élément du tableau...
    +1
    foreach crée une copie, du coup on travail pas sur le meme element.
    Il faut donc en effet acceder via le tableau soit comme Séb. l'a suggéré soit si on a pas que des index numériques sur le dit tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach($tab_objets as $key => $value) {
       $tab_objets[$key]->doSomething();
    }

  4. #4
    Membre du Club
    Homme Profil pro
    Supply Chain Manager
    Inscrit en
    Octobre 2002
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Supply Chain Manager

    Informations forums :
    Inscription : Octobre 2002
    Messages : 33
    Points : 40
    Points
    40
    Par défaut
    MERCI!
    Comme ça fait du bien quand ça marche

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

Discussions similaires

  1. Mettre la valeur d'un champ d'une table dans une variable
    Par marcelstan dans le forum Access
    Réponses: 1
    Dernier message: 18/03/2015, 20h58
  2. Valeur d'une variable devient une variable
    Par dragondumond dans le forum VB.NET
    Réponses: 21
    Dernier message: 09/04/2013, 17h07
  3. transmission des valeurs d'une variable d'une fonction a une autre
    Par Invité dans le forum GTK+ avec C & C++
    Réponses: 7
    Dernier message: 22/07/2009, 23h05
  4. Réponses: 0
    Dernier message: 21/01/2009, 13h52
  5. Réponses: 12
    Dernier message: 06/08/2008, 14h39

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