Mammouth du PHP |
571 Messages
21 juin 2014, 13:26
Et pourquoi quand le fais ceci :
echo $ma_voiture->cetteVoiture();
cela n'affiche rien ?
pour les mêmes raisons qu'on affichera pas un tableau
$tab = array('orange','apple');
echo $tab; //pas ok
Car un tableau est constitué de plusieurs éléments. Un tableau tout comme une instance est un type composite, par opposition aux types simples(entiers, chaînes...).
Une instance référence l'objet Voiture qui elle même dispose de données membres(attributs et méthodes). C'est grâce aux instances (exception pour les méthodes et attributs static) qu'on peut accéder aux méthodes
cetteVoiture(),
avance($distance).
Cependant on peut afficher un objet à condition de redéfinir la méthode __toString() :
class A
{
private $chiffre = 0;
public __construct($param)
{
$this->chiffre = $param;
}
public function valeur()
{
return $this->chiffre;
}
public function __toString()
{
return $this->chiffre;
}
}
$un = new A(1);
$deux = new A(2);
echo $un; // 1
echo $deux; // 2