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] Constructeur de classe


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Points : 74
    Points
    74
    Par défaut [POO] Constructeur de classe
    Bonsoir à la communauté,

    je voudrais savoir, après avoir cherché l'information ailleurs, s'il est possible pour une classe d'avoir plusieurs constructeurs avec des arguments différents. Si oui, pouvez-vous me donner un bout de code à titre d'exemple?

    Merci infiniment

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    php4 ou php5 ???



    Il n'est pas possible de définir plusieurs constructeurs (contrairement à C++ ou Java) car la surcharge n'est pas permise avec PHP (langage à typage faible).
    premier lien sur
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #3
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Points : 74
    Points
    74
    Par défaut
    Merci de ta réponse

    je pensais à PHP5

  4. #4
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Points : 74
    Points
    74
    Par défaut
    et pour les méthodes ?

    peut-on avoir maMéthode($var1) ..

    maMéthode($var1,$var2) ...

    Donc est-ce la même chose pour la surcharge des méthodes?

    Merci

  5. #5
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    pour les méthodes, tu ne peux redéfinir des méthodes avec un même nombre d'arguments (because non typage...)

    mais pour le reste, ça passe
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  6. #6
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    pour les méthodes, tu ne peux redéfinir des méthodes avec un même nombre d'arguments
    Tu ne peux juste pas déclarer deux fois la même méthode dans la même classe en php5.

    Sinon y'à bien une méthode pour supporter la surcharge...
    Même si je n'adhère pas vraiment.

    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
    19
    20
    21
    22
    23
    class A
    {
        public function __construct()
        {
            $args = func_get_args();
            switch( count($args) )
            {
               case 0:
                  echo no arguments
               break;
               case 1:
                  echo 1 argument : $args[0]
               break;
               default:
                  var_dump($args);
               break;
            }
        }
    }
    $a = new A();
    $a1 = new A("rrrr");
    $a2 = new A($a);
    $a = new A(1,2,3,4,5,.....);

  7. #7
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 206
    Points : 74
    Points
    74
    Par défaut
    Merci EpoX

    Tu penses comme moi. Je fais la même chose pour les méthodes et les constructeurs. C'est pour cela que j'ai posé la question ici. Je vais donc me contenter de ce que je faisait jusqu'à maintenant.

    Merci

  8. #8
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Sinon tu peux essayer de passer pas l'héritage. Mais bon sa dépend des situations ce n'est pas vrai pour tout je pense.

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

Discussions similaires

  1. [POO] Extension de classe et constructeur
    Par grunk dans le forum Langage
    Réponses: 1
    Dernier message: 12/03/2008, 16h37
  2. Réponses: 3
    Dernier message: 27/04/2007, 14h51
  3. [POO] constructeur d'une class
    Par spirou dans le forum Langage
    Réponses: 13
    Dernier message: 05/07/2006, 16h11
  4. Réponses: 2
    Dernier message: 09/10/2005, 15h35
  5. Réponses: 7
    Dernier message: 15/07/2005, 15h07

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