_constructeur dans les classes

Eléphant du PHP | 226 Messages

08 janv. 2012, 15:59

Je suis aller voir dans plusieurs site. Malheureusement, j'ai rien compris. Qui peut me donner un exemple simple?
Djun, L'inoubliable et l'incontournable

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 janv. 2012, 17:09

Les classes qui possèdent un constructeur appellent cette méthode à chaque création d'une nouvelle instance de l'objet. En gros, à chaque fois que tu fais un new TaClasse(), la méthode __construct() de ta classe est exécutée, avec les paramètres qui lui sont passés.

Par exemple, dans une classe véhicule, on pourrait définir un nombre de roues, si la boite de vitesse est manuelle ou automatique, etc. On pourrait donc imaginer une classe ainsi et l'appel suivant :
class Vehicule {
    private $nbRouesVehicule;
    private $boiteDeVitesse;

    function __construct($nbRoues, $vitesse, $demarrer) {
        $this->nbRouesVehicule = $nbRoues; // 2, 4 ...
        $this->boiteDeVitesse = $vitesse; // "auto", "manu"
        if ($demarrer) { // faut-il démarrer le moteur
            $this->demarreLeMoteur();
        }
    }

    public function demarreLeMoteur() {
        echo 'Vrouuummmm !';
    }
    ...
}

// retourne une instance de véhicule avec 4 roues, une boite automatique, non démarrée
$maVoiture = new Vehicule(4, "auto", false); 
$maVoiture->demarrerLeMoteur(); // met la voiture en route 

// retourne une autre instance de véhicule avec 10 roues, une boite manuelle, et qui fait Vrouuumm !
$monCamion = new Vehicule(10, "manu", true);
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...