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-Héritage] Appel du constructeur en PHP4.3.2


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de raoulchatigre
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2004
    Messages : 99
    Points : 87
    Points
    87
    Par défaut [POO-Héritage] Appel du constructeur en PHP4.3.2
    Bonjour à tous,

    je précise d'abord que je suis encore en PHP4
    Mon problème est simple, j'ai deux classes l'une héritant de l'autre.
    Disons

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class A {
      function A() {
        echo "Je suis le constructeur de A !";
      }
    }
     
    class B extends A {
      function B() {
        echo "Je suis le constructeur de B !";
      }
    }
    Ce code est très joli mais mon exemple est plus complexe : surtout au niveau des constructeur. Et à ce sujet la doc me dis :
    Citation Envoyé par La doc PHP
    PHP 4 n'appelle pas automatiquement le constructeur de la classe supérieure depuis le constructeur de la classe dérivée. Il est de votre responsabilité de propager l'appel des constructeurs.
    Je suppose donc qu'il faut appeler A() dans le constructeur B() de la classe B. Seulement je ne parvient pas à trouver la syntaxe valide, je penses bien à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    class B extends A {
      function B() {
        $this = A();
        echo "Je suis le constructeur de B !";
      }
    }
    mais je ne sais pas si c'est une syntaxe correcte et respectueuse.

    Voilà c'est pas bien compliqué mais je ne trouve pas la réponse dans les docs, donc si queqlqu'un a une idée, cela me dépannerai bien.

    Merci d'avance

  2. #2
    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
    soit $this->A(), soit parent::A()
    je ne sais pas qu'elle est la bonne solution

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    parent::A(); fait explicitement appel à la super-classe. A mon sens ça parait plus logique et plus parlant

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    essayes EDIT
    double grilled ^^
    mon php 4 est loin
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  5. #5
    Membre régulier Avatar de raoulchatigre
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2004
    Messages : 99
    Points : 87
    Points
    87
    Par défaut
    Bonne idée l'appel Parent::A() !
    J'ai bien fait de demander !
    j'essayes et je vous tiens au courant.

    Edit : cela fonctionne, merci à tous

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

Discussions similaires

  1. [POO] Faire appel au constructeur de la classe parent
    Par sliderman dans le forum Langage
    Réponses: 2
    Dernier message: 03/03/2008, 14h30
  2. [POO] Classe php5 et constructeur php4
    Par mathrem dans le forum Langage
    Réponses: 1
    Dernier message: 19/03/2007, 17h10
  3. [POO] Poo : héritage & constructeur
    Par Invité dans le forum Langage
    Réponses: 3
    Dernier message: 11/07/2006, 14h29
  4. [POO]héritage du constructeur de la classe parente
    Par new_wave dans le forum Langage
    Réponses: 7
    Dernier message: 10/03/2006, 14h25
  5. [héritage privé] appel du constructeur de base
    Par PINGOUIN_GEANT dans le forum C++
    Réponses: 4
    Dernier message: 19/10/2004, 14h05

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