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] Surcharge de constructeur


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 23
    Points : 17
    Points
    17
    Par défaut [POO] Surcharge de constructeur
    Bonjour,

    j'ai fait des recherche sur le forum concernant la surcharge de constructeur mais aucune réponse ne m'a convenu.
    J'ai lu qu'on pouvais surcharger un constructeur en php5 en utilisant
    public function __construct($var1)
    public function __construct($var2, $var3)

    ca n'a malheureusement pas fonctionné, j'ai donc tenté de la manière suivante :
    public function mafonction($var1 = '')
    public function __construct()

    cette façon a fonctionné mais du jour au lendemain ca n'a plus marché.

    le seul changement que j'ai effectué est :

    public function mafonction($var)
    public function __construct($var2, $var3)

    Merci pour votre aide.

  2. #2
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Tu peux donner le code de déclaration de ta classe ?

  3. #3
    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
    Points : 691
    Points
    691
    Par défaut
    php5 supporte la surcharge des methodes via __call (et c'est pas terrible) mais in ne supporte pas la surcharge des constructeurs,
    etant données que php est faiblement typé il n'y pas besoin de faire de surcharge.
    il suffit que tu declare le nopmbre d'argument Maximun avce un = null
    et ensuite tu traite suivant le type de tes variable

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    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
    32
    33
    34
    35
    36
    37
    38
     
    	public function __construct($id)
    	{
    		$options = array('debug' => 2, 'portability' => DB_PORTABILITY_ALL,);
    		$db = DB::connect(DSN, $options);
    		if (DB::isError($db)) die($db->getMessage());
    		$db->setFetchMode(DB_FETCHMODE_OBJECT);
     
    		$res = $db->query("SELECT nom, prenom FROM utilisateurs WHERE id=$id");
    		if (DB::isError($res)) die($res->getMessage());
    		$res->fetchInto($data);
     
    		$this->setVar($data->nom, $data->prenom);
    		$this->idClient = $id;
    		$db->disconnect();
    	}
     
    	/**
    	* surcharge du constructeur qui permet d'instancier un utilisateur à partir des parametres, pour pouvoir ensuite l'enregistrer.
    	* @param string $nom le nom de l'utilisateur
    	* @param string $prenom le prenom de l'utilisateur
    	*/
    	public function __construct($nom, $prenom)
    	{
    		$this->setVar($nom, $prenom);
    		$this->idClient = NULL;
    	}
    	/**
    	* initialise les variable de l'objet courant avec les éléments passés en parametre.
    	* @param string $nom nom de l'utilisateur
    	* @param string $prenom prenom de l'utilisateur
    	* @return void
    	*/
    	function setVar($nom, $prenom)
    	{
    		$this->nom = $nom;
    		$this->prenom = $prenom;
    	}
    voila pour le code

  5. #5
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par loganblack
    voila pour le code
    Ben apparemment jeff t'a répondu...

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, 13h23
  2. [POO] Surcharge d'un constructeur
    Par mulot49 dans le forum Langage
    Réponses: 3
    Dernier message: 29/05/2007, 12h39
  3. [POO] PHP5 et surcharge de constructeurs
    Par defkid dans le forum Langage
    Réponses: 2
    Dernier message: 09/02/2007, 19h00
  4. [POO]Probléme de constructeur virtuel surchargé
    Par Laurent Dardenne dans le forum Delphi
    Réponses: 10
    Dernier message: 15/08/2006, 13h19
  5. [POO] surcharger le constructeur
    Par wdionysos dans le forum Langage
    Réponses: 9
    Dernier message: 22/03/2006, 16h42

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