Bonjour tout le monde,
Je suis entrain d’apprendre PHP, j’ai deux classes et je veux qu’à chaque fois que j’instancie une classe et que j’appelle la méthode "getNbVehicules()" que le nombre d’instances créées s’affichent. Le problème, c’est que cela ne semble pas fonctionner correctement, car il y a seulement "1" qui apparait quand j’appelle la méthode. Aidez-moi s’il vous plait.
<?php
class Vehicule{
private $marque;
private $couleur;
private $annee;
private $nbVehicules;
public function __construct($uneMarque, $uneCouleur, $uneAnnee){
$this->marque=$uneMarque;
$this->couleur=$uneCouleur;
$this->annee=$uneAnnee;
$this->nbVehicules=0;
}
public function getMarque(){
return $this->marque;
}
public function getCouleur(){
return $this->couleur;
}
public function getAnnee(){
return $this->annee;
}
public function getNbVehicules(){
return $this->nbVehicules+=1;
}
public function __toString(){
$message = "";
$message.= "Marque du vehicule: ".$this->marque." / Couleur du vehicule: ".$this->couleur." / Annee du vehicule: ".$this->annee;
return $message;
}
}
class Voiture extends Vehicule{
private $proprio;
function __construct($uneMarque, $uneCouleur, $uneAnnee, $unProprio){
parent::__construct($uneMarque, $uneCouleur, $uneAnnee);
$this->proprio=$unProprio;
}
function getProprio(){
return $this->proprio;
}
}
$vehicule1 = new Vehicule("Nissan", "Bleu", 2021);
echo "<p> Vehicule [".$vehicule1->getNbVehicules()."]</p>";
echo $vehicule1->__toString();
//
$vehicule2 = new Voiture("Honda", "Rouge", 2020, "Jean");
echo "<p> Vehicule [".$vehicule2->getNbVehicules()."]</p>";
echo $vehicule2->__toString();
echo " / Proprietaire: ".$vehicule2->getProprio();
?>
+0
-0