michel_roger
Messages postés60Date d'inscriptionlundi 6 octobre 2003StatutMembreDernière intervention18 août 2006
-
30 juin 2006 à 11:55
michel_roger
Messages postés60Date d'inscriptionlundi 6 octobre 2003StatutMembreDernière intervention18 août 2006
-
3 juil. 2006 à 08:58
Bonjour,
Je cherche actuellement à créerqqs classes en PHP5 et désire savoir s'il est possible de surcharger un constructeur en PHP5.
En effet, j'ai essayé de donner le même nom à tous les constructeurs (__construct(paramètres) et __construct(param1, paramN1) ou maSousClasse(paramètres) et maSousClasse(param1, paramN1) et là :
Erreur de script : cannot redeclare method maSousClasse::maSousClasse.
Je croyais pourtant que la surcharge était prise en compte en PHP5, cependant on dirait qu'elle est prise en compte d'une classe mère à une classe fille mais pas au sein d'une même classe...
Voici un exemple de ce que je voudrais faire :
// Constructeur de base nécessitant beaucoup de paramètres (peu utilisé)
public function__construct($param1, $param2, $param3, $param4, ..., $paramN) {
$this->param1 = $param1;
$this->param2 = $param2;
$this->param3 = $param3;
$this->param4 = $param4;
...
$this->paramN = $paramN;
}
}
class maSousClasse extends maClasse {
private $paramN1;
// Constructeur de base nécessitant beaucoup de paramètres (peu utilisé également)
public function__construct($param1, $param2, $param3, $param4, ..., $paramN, $paramN1) {
// On appelle le constructeur parent avec tous les paramètres
parent::__construct($param1, $param2, $param3, $param4, ..., $paramN);
$this->paramN1 = $paramN1;
}
// Constructeur surchargé (utilisé souvent car moins de paramètres)
public function maSousClasse($param1, $paramN1) {
// On appelle le constructeur parent avec la majorité des paramètres à null
parent::__construct($param1, null, null, null, ..., null);
$this->paramN1 = $paramN1;
}
}
// Lorsque j'appelle mon constructeur avec tous les paramètres, tout se passe bien :
$classe = new maSousClasse ("test", 2, 3, 4, ..., $N, $N1);
// Lorsque j'appelle mon constructeur "simplifié",
// Erreur de script, les paramètres sont manquants :
$classe = new maSousClasse(("test", $N1);
?> Merci d'avance pour votre aide
Bonne journée
Cordialement
www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"