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 :

Référence, besoin d'une petite explication


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 120
    Points : 50
    Points
    50
    Par défaut Référence, besoin d'une petite explication
    Bonjour je cherche à bien comprendre le fonctionnement des référence sous php et les lumières de quelques personnes un peu érudit sur le sujet seraient les bienvenues

    imaginons
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
    $a = new Foo("a");
    $b = new Foo("b");
    $c = new Foo("c");
    $d = new Foo("d");
     
    $tab[0] = &$a;
    $tab[1] = &$b;
    $tab[2] = &$c;
     
    $ref = $tab[0]; //Est ce que $ref pointe bien sur le même objet que $a ?
    //Si je modifie $ref ou $tab[0] est ce que $a est changé aussi ?
     
    $ref = &$d;  // Est ce que $tab[0] voit son contenu aussi changé et pointe sur l'objet $d ?
     
    $tab[0] = &$ref; // Que vaut $tab[0] ? J'arrive pas à savoir si ça pointe sur $d
    Merci de votre aide

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Tout d'abord, la meilleur façon de comprendre quelque chose, en dehors du fait de le faire soit même, c'est de le tester .

    Je te conseil donc de faire des tests, et tu répondras toi-même à tes questions :'). De plus nos réponses sont dépendantes de ta fonction (ce qu'elle fait).

    Je n'utilise que très rarement la référence (pour ne pas dire jamais) mais je "sais" deux trois choses.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
    # On créai une variable et on lui assigne le mot Dupond
    $nom = 'Dupond';
    # echo $nom; -> Dupond
     
    # On créai une référence de $ref sur $nom
    $ref = &$nom;
    # echo $ref; -> Dupond
     
    # On ajoute Jean
    $nom .= '&nbsp;Jean';
    # echo $nom -> Dupond Jean
    # echo $ref -> Dupond Jean
     
    # On supprime $nom
    unset($nom);
    # echo $ref -> Dupond Jean
    En somme, les deux variables pointes sur le même "zone". Si la zone change pour l'une, elle change pour l'autre. Par contre la destruction de l'une, ne détruit par l'autre.

    J'espère que cela va t'être utile ^_^.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 120
    Points : 50
    Points
    50
    Par défaut
    En fait le point le plus obscure pour moi et c'est que retourne le tableau. Lorsqu'on assigne une référence dans un tableau et qu'on lui demande de retourner cette valeur, est-ce toujours une référence ou une copie ?

    Merci à toi pour avoir pris la peine de répondre.

Discussions similaires

  1. [AC-2010] Besoin d'une petite explication
    Par onobyone dans le forum Access
    Réponses: 2
    Dernier message: 24/06/2015, 13h07
  2. Besoin d'une petite explication
    Par geforce dans le forum JSF
    Réponses: 1
    Dernier message: 14/02/2012, 08h29
  3. [Command] Besoin d'une petite explication
    Par BkD35 dans le forum Design Patterns
    Réponses: 0
    Dernier message: 26/10/2009, 16h47
  4. .htpass : une petite explication please
    Par PuMa|Yas dans le forum Apache
    Réponses: 2
    Dernier message: 31/08/2005, 12h57

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