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 :

Quand utiliser $this ?


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut Quand utiliser $this ?
    Bonjour,

    j'ai une question basique sur la déclaration de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->ma_var = $ma_variable;
    dans ma class. J'ai remarqué que même si je j'utilisais $ma_variable, directement dans ma classe, cela fonctionne.
    Du coup je ne vois pas l'utilité de $this->ma_var ? Quand dois je l'utiliser ?

    Merci
    Mes contributions phares en dev : www.rigaudie.fr

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut

    Il va falloir quand meme nous en dire un peu plus, d'où vient $ma_variable? le contexte etc ...
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  3. #3
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut
    Voici mon code php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class db
        {
     
            public function __construct()
           {
     
           }
     
            function connexion ($ma_variable)
            {
            $this->ma_var = $ma_variable ;
            ....
            }
    }
    D'ailleurs je me pose la question s'il ne vaut pas mieux mettre cette déclaration dans le constructeur ?
    Mes contributions phares en dev : www.rigaudie.fr

  4. #4
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    ma_var est une propriété de la classe ou non ?
    LE code est complet ?

    Par ce que le constructeur vide est inutil, de plus ça ne me dit toujours pas ce que tu fais de ma_var ou $ma_variable donc je ne sais pas si c'est effectivement pertinent de le mettre dans une propriété ou non ...
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  5. #5
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut
    $ma_variable est une variable contenant le nom de la table pour ma connexion à ma bd afin que je puisse effectuer ma requête avec PDO.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function connexion ($ma_variable)        
    { 
           $this->ma_var = $ma_variable ; 
    
    $Connexion_BD = new PDO('mysql:host='.PARAM_BD_HOTE.';dbname='.PARAM_BD_BASE, PARAM_BD_LOGIN, PARAM_BD_MDP);
    
    $Select = $Connexion_BD->prepare('SELECT * FROM '.$this->ma_var);        
    
    $Select->Execute();
    }


    je ne sais pas si c'est effectivement pertinent de le mettre dans une propriété ou non ...
    Et comment juger si c'est bien de passer par $this-> ?

    Merci
    Mes contributions phares en dev : www.rigaudie.fr

  6. #6
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    A en juger par ton code , effectivement ça ne sert à rien.
    TU peux mettre ta valeur dans un propriété si tu t'en sers ensuite dans une autre méthode mais si son utilisation reste dans le scope de la méthode que tu appel , pas besoin.
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  7. #7
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut
    TU peux mettre ta valeur dans un propriété si tu t'en sers ensuite dans une autre méthode mais si son utilisation reste dans le scope de la méthode que tu appel , pas besoin.
    Ce que tu appelles propriété c'est ce $this-> ? Et en faisant cela ça rend ta variable accessible dans les autres méthodes ?
    Mes contributions phares en dev : www.rigaudie.fr

  8. #8
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    $this est un accesseur à l'instance de ta classe.
    Si tu as des propriétés dans ta classe ,tu y accèdes via $this->propriété.

    Ces propriétés sont 'en vie' en même temps que l'instance de ton objet, et elles sont visibles n'importe où à l'intérieur de ta classe.
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  9. #9
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut
    Merci pour toutes ces précisions
    Mes contributions phares en dev : www.rigaudie.fr

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

Discussions similaires

  1. les classes et c# .. quand utiliser le "this" ?
    Par jgbid123 dans le forum Windows
    Réponses: 3
    Dernier message: 01/12/2006, 22h04
  2. Réponses: 5
    Dernier message: 12/03/2006, 14h38
  3. Réponses: 10
    Dernier message: 08/02/2005, 10h52
  4. Écriture dans un DBgrid quand utilise un query comme dataset
    Par dcayou dans le forum Bases de données
    Réponses: 3
    Dernier message: 13/07/2004, 22h22
  5. [Procédure Stocké] Quand utiliser ?
    Par touhami dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/03/2004, 09h09

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