Page 1 sur 1

Surcharge du constructeur

Posté : 28 juin 2006, 12:12
par bucheron
Est il possible de surcharger le constructeur d'une classe en php5 ?

si oui comment ?

merci

Posté : 28 juin 2006, 13:37
par zigz4g
Salut.
La surcharge en PHP5 est un peu 'inutile' puisque tu peux n'a pas forcément de typage sur les paramètres d'entrée (Attention tout de même au typage des classes).
Regarde du côté de __call(), c'est la méthode appelée si il n'y a pas le nom de la méthode voulue.
http://www.php.net/manual/fr/language.o ... oading.php
Personnellement, je trouve cette solution très peu pratique et peut rendre le code illisible si tu abuse de la fonction __call.
Dans cette méthode, il faudra faire des if pour gérer les différentes surcharges, ce qui n'est pas des plus pratique mais cela n'est que mon avis.

EDIT: Désolé manque le petit morceau qui répond à ta question, PHP retourne ce message quand tu fait ce code :
<?php
class Test
{
    public function __construct()
    {
        echo 'Je suis dans le constructeur.<br />';
    }

    public function __construct($test)
    {
        echo 'Je suis dans le constructeur avec un param.<br />';
    }
}

$test = new Test();
$test2 = new Test('tu');
?>

Code : Tout sélectionner

Fatal error: Cannot redeclare Test::__construct() in /var/www/html/test/php/test-surcharge-construct.php on line 21

Posté : 28 juin 2006, 14:23
par bucheron
merci