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] surcharger le constructeur


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Par défaut [POO] surcharger le constructeur
    Bonjour a tous !

    je me met avec php 5 et ne trouve pas dans la fac comment faire accepter a PHP un constructeur surchargé, mon code est :
    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
    24
    25
    26
    27
    28
    29
    30
    31
     
    /**function experience(){
    experience('id','categorie','societe','ville','dept','pays','titre','soustitre','logo','typcontrat','datedeb','datefin','resume','technique','tool','detail','credate');	
    }**/
     
    //constructeur surcharge
     
    function experience($expid,$cat,$soc,$ville,$dept,
        $pays,$titre,$soustitre,$logo,$typcontrat,$datedeb,
        $datefin,$resume,$tech,$tool,$detail,$credate){
     
    		$newexp->expid = $this->setExpId($expid);
    		$newexp->cat = $this->setCat($cat);
    		$newexp->soc = $this->setSoc($soc);
    		$newexp->ville = $this->setVille($ville);
    		$newexp->dept = $this->setDept($dept);
    		$newexp->pays = $this->setPays($pays);
    		$newexp->titre = $this->setTitre($titre);
    		$newexp->soustitre = $this->setSousTitre($soustitre);
    		$newexp->logo = $this->setLogo($logo);
    		$newexp->typcontrat = $this->setTypContrat($typcontrat);
    		$newexp->datedeb = $this->setDateDeb($datedeb);
    		$newexp->datefin = $this->setDateFin($datefin);
    		$newexp->resume = $this->setResume($resume);
    		$newexp->tech = $this->setTech($tech);
    		$newexp->tool = $this->setTool($tool);
    		$newexp->detail = $this->setDetail($detail);
    		$newexp->credate = $this->setCreDateExp($credate);
    		//echo 'test : newuser est cré'; //DEBUG ONLY
    		return $newexp;	
    	}
    mon appel est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    include('class/experience.php');
    /**echo ("test de l'objet experience<br /><br />");
    $exp = new experience();
    $exp->displayExp();**/
     
    echo ("<br /><br />test de l'objet experience surchargée<br /><br />");
     
    $exp2 = new experience(1,'macategorie','masociete','maville',57,
    'france','charge de mission','developpement tres difficile','img/monumage.gif','CDD','09/2000','03/2006','vraiment tres difficile la vie de developpeur','EJB, servlets, Jsp, UML, merise','Eclipse, powerAMC','vraimmennt tres difficile','aujourd\'hui');
     
    $exp2->displayExp();
    le premier constructeur (vide) est en commentaire a cause du message d'erreur
    Fatal error: Cannot redeclare experience::experience() in E:\WEB\fksite\class\experience.php on line 44
    vous avez pas une idéee pour pouvoir avoir deux constructeur dans mon objet

    merci

    wdionysos

    rajout : precision, j'ai aussi essayer avec __construct() mais le resultat est le meme

    wdio

  2. #2
    Membre confirmé Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Par défaut precision
    personne pour m'aider a digerer ce constructeur,

    si c'est une question débile vous avez le droit de m'insulter

    je suis sur que la réponse est simple mais voila je trouve pas (ca arrive)

    je suis surpris , lermus n'aurrait pas sortit la version 5 sans rendre possible de surcharger le constructeur ?

    d'autant qu'apparament le module objet de php5 est tres similaire de celui de C++

    wdio

  3. #3
    Membre éclairé
    Profil pro
    Ingénieur en électronique
    Inscrit en
    Septembre 2004
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur en électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 419
    Par défaut
    Moi , je ne vais pas t'insulter , car , je n'ai pas encore utiliser toutes les fonction que tu utilise ..... alors desolé .... et bonne chance pour ton probléme ....

    Ps : je t'ai repondu car tu semblai avoir envi d'une reponce .....

  4. #4
    Membre confirmé Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Par défaut
    merci, je me sent beaucoup moins seul

    :o

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 76
    Par défaut
    ce que je ferai, je ne suis pas sur que ce soit bien élégant mais bon, c'est quelque chose utilisant les valeurs par défaut.

    ex:
    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
    24
    25
    26
    function experience($expid=null,$cat=null,$soc=null, ....=null){
       if($expid){
          $newexp->expid = $this->setExpId($expid);
          $newexp->cat = $this->setCat($cat);
          $newexp->soc = $this->setSoc($soc);
          $newexp->ville = $this->setVille($ville);
          $newexp->dept = $this->setDept($dept);
          $newexp->pays = $this->setPays($pays);
          $newexp->titre = $this->setTitre($titre);
          $newexp->soustitre = $this->setSousTitre($soustitre);
          $newexp->logo = $this->setLogo($logo);
          $newexp->typcontrat = $this->setTypContrat($typcontrat);
          $newexp->datedeb = $this->setDateDeb($datedeb);
          $newexp->datefin = $this->setDateFin($datefin);
          $newexp->resume = $this->setResume($resume);
          $newexp->tech = $this->setTech($tech);
          $newexp->tool = $this->setTool($tool);
          $newexp->detail = $this->setDetail($detail);
          $newexp->credate = $this->setCreDateExp($credate);
          //echo 'test : newuser est cré'; //DEBUG ONLY
          return $newexp;   
       }
       else{
         ....
       }
    }

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    salut
    tu ne peut pas surcharger de cette facon
    en php5 tu le droit a un seul constructeur qui est __construct

  7. #7
    Membre chevronné Avatar de XtofRoland
    Profil pro
    Inscrit en
    Août 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 357
    Par défaut
    en php4 le nom du constructeur est le nom de la classe,
    et php5 est a ce point de vue compatible avec php4 (d'apres ce que j'ai lu)

    par contre il est vrai qu'on peut le reecrire (override) mais pas le surcharger(overload)

  8. #8
    Membre confirmé Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Par défaut snif
    oui !

    merci narkhor c'est je pense être une bonne solution

    je viens de lire dans mon book php qui date de 4 que le langage ne supporte pas la surcharge et en fait je pensais que php 5 apportait une solution a cela

    mais apparament non !

    dans ce cas, l'attribution d'argument par defaut doit etre la meilleures solution si j'ai besoin d'appeller un constructeur vide

    dommage ! (en fait , il n'ont pas tout copier sur c++) la surcharge serait vraiment utile pour atteindre la puissance d'autre langage comme java ou c++ avec la simplicité de php

    un ptit resolu par depit et hop

    merci a tous les intervenants

    wdio

  9. #9
    Membre confirmé Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Par défaut
    j'ai lu vos message qui se sont croisé avec le mien

    j'ai noté on peut le redefinir entre deux classes d'heritage mais pas le surcharger

    ok

    merci a tous

  10. #10
    Membre confirmé Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Par défaut
    XtofRoland

    [quote]
    Mon avatar est un ambigramme, les curieux peuvent le retourner Wink

    voila un joli dessin qui n'a pas du te couter beaucoup de sioux

    wdio

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

Discussions similaires

  1. [PHP 5.2] [POO] Surcharge du constructeur d'une classe
    Par anaranjado dans le forum Langage
    Réponses: 5
    Dernier message: 28/08/2009, 12h23
  2. [POO] Surcharge d'un constructeur
    Par mulot49 dans le forum Langage
    Réponses: 3
    Dernier message: 29/05/2007, 11h39
  3. [POO] PHP5 et surcharge de constructeurs
    Par defkid dans le forum Langage
    Réponses: 2
    Dernier message: 09/02/2007, 18h00
  4. [POO]Probléme de constructeur virtuel surchargé
    Par Laurent Dardenne dans le forum Delphi
    Réponses: 10
    Dernier message: 15/08/2006, 12h19
  5. [POO] Surcharge de constructeur
    Par loganblack dans le forum Langage
    Réponses: 4
    Dernier message: 17/05/2006, 12h26

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