_run = FALSE; } /** * Allume le véhicule. */ function start() { echo "Appel de la méthode 'start' de la classe 'Vehicle'\n"; $this->_run = TRUE; } /** * Affiche si le véhicule est allumé ou éteint. */ function printRunStatus() { echo "Le véhicule est ".($this->_run ? "allumé" : "éteint").".\n"; } } /** * La classe Car représente une voiture, elle hérite de la classe * Vehicle. Une voiture possède un modèle. De plus la musique peut être * allumée ou éteinte, elle est automatiquement allumée lors du * démarrage du véhicule. */ class Car extends Vehicle { /** Modèle de la voiture */ var $_model; /** Indique si la musique est allumée ou éteinte. var $_music; /** * Crée une nouvelle instance de la classe Car avec le modèle * spécifié en paramètre. La musique est éteinte. */ function Car($model) { parent::Vehicle(); echo "Appel du constructeur de la classe 'Car'\n"; $this->_model = $model; $this->_music = FALSE; } /** * Allume la voiture, puis la musique. */ function start() { parent::start(); echo "Appel de la méthode 'start' de la classe 'Car'\n"; $this->_music = TRUE; } /** * Affiche le modèle de la voiture. */ function printModel() { echo "Modèle $this->_model\n"; } /** * Affiche si la musique est allumée ou éteinte. */ function printMusicStatus() { echo "La musique est ".($this->_music ? "allumée" : "éteinte").".\n"; } /** * Méthode statique qui retourne le nombre de roues. Inutile en * en soit mais faut bien un exemple de méthode statique. */ function getNbWheel() { echo "Appel de la méthode statique 'getNbWheel' de la classe 'Car'\n"; return 4; } /** * Méthode appelée automatiquement lors de la serialisation. */ function __sleep() { echo "Sleep\n"; return array('_model'); } /** * Méthode appelée automatiquement lors de la dé-serialisation. */ function __wakeup() { echo "Wakeup\n"; } } echo "Premier Objet\n"; $c = new Car('Renault'); $c->start(); $c->printMusicStatus(); $nb = Car::getNbWheel(); echo "\nObjet sérialisé\n"; $tmp = serialize($c); $c2 = unserialize($tmp); $c2->printModel(); $c2->printRunStatus(); $c2->printMusicStatus(); ?>