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] Accès à une variable de la classe parent


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 110
    Points : 68
    Points
    68
    Par défaut [POO] Accès à une variable de la classe parent
    Bonjour,

    J'ai une classe parent, et elle est "étendue" par une autre :

    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
    18
     
    class parent
    {
    $protected mavar;
    __construct(){
    $this->mavar = "valeur";
    }
    }
     
    class enfant extends parent
    {
    function generer(){
    $output = "Sortie : ";
    $output .= $this->mavar;
     
    print $output;
    }
    }
    Voila je cile la variable mavar au moyen de $this, seulement je n'ai ni son contenu dans la sortie de la fonction generer(), ni de message d'erreur dans mes logs.

    Ca doit etre tout bete mais je butte la dessus , si qq un peut m'aider SVP.

    ++

  2. #2
    Inactif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 179
    Points : 202
    Points
    202
    Par défaut
    parent est un mot réservé du langage
    $protected mavar devrait être protected $mavar

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Salut,

    n'oublie pas d'appeler le constructeur parent dans enfant. Php ne le fait pas pour toi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class enfant extends parent
    {
    function __construct(){
    parent::_construct();
    //do something
    }
     
    }
    bye

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 179
    Points : 202
    Points
    202
    Par défaut
    Citation Envoyé par kaymak Voir le message
    n'oublie pas d'appeler le constructeur parent dans enfant. Php ne le fait pas pour toi.
    Pas besoin si la sous-classe ne définit pas elle-même de constructeur.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 110
    Points : 68
    Points
    68
    Par défaut
    Re,

    Pour parent et enfant, ce ne sont que des noms que j'ai mis pour materialiser mon probleme, mes classes n ont pas ces noms la ^^
    Pour la syntaxe de declaration de var , c'etait une faute de frappe, dans ma classe elle est correcte.

    En fait je pense que je n'utilise pas bien les classes , car je declare la classe 'parent' en lui passant des arguments qui permettent de créer un tas de variables.

    Puis j'utilise des classes enfant devant pouvoir utiliser certaines variables de la classe parent.
    Dans le script php qui utilise ces classes, je commence par instancier la classe parent, puis je crée des instances des classes enfants selon les besoins, et lorsque j'enleve le constructeur de la classe 'enfant' (qui n'admet aucun argument), j'ai une erreur comme quoi des arguments manquent (ceux que le constructeur de la classe parent necessite)

    Je voudrais donc pouvoir avoir un constructeur propre a ma classe enfant, vide pour la plupart, mais néanmoins pouvoir acceder aux variables de la classe parent dans les enfants, ou si je fais une utilisation contre nature des classes php, un conseil est le bienvenue.

    Merci par avance pour votre aide.
    +

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Citation Envoyé par sielfried Voir le message
    Pas besoin si la sous-classe ne définit pas elle-même de constructeur.
    Euh c'est possible, je n'ai pas de certitude la dessus.

    Mais c'est surtout une bonne habitude à prendre.

Discussions similaires

  1. [POO] Accès à une propriété de la classe mère
    Par hornetbzz dans le forum Langage
    Réponses: 2
    Dernier message: 28/02/2010, 23h16
  2. [POO] Accès à une variable impossible!
    Par k o D dans le forum Langage
    Réponses: 34
    Dernier message: 25/11/2008, 15h17
  3. Réponses: 5
    Dernier message: 23/11/2006, 13h55
  4. [POO] Problème d'accès à une variable privée
    Par Nadd dans le forum Langage
    Réponses: 8
    Dernier message: 17/09/2006, 21h43
  5. [POO] Retrouver une variable d'instance de classe
    Par stailer dans le forum Langage
    Réponses: 1
    Dernier message: 18/02/2006, 10h56

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