La fonction __toString() est chargée de retourner une représentation textuelle d'un objet.
De cette manière un objet peut fournir un aperçu de son état, sous la forme d'une chaîne de caractères.
class Personne {
private $civilite;
private $nom;
private $prenom;
private $adresse;
private $telephone;
public function __construct(
$civilite,
$nom,
$prenom,
$adresse,
$telephone){
$this->civilite = $civilite;
$this->nom = $nom;
$this->prenom = $prenom;
$this->adresse = $adresse;
$this->telephone = $telephone;
}
public function __toString(){
return '[' . $this->civilite . ', '
. $this->nom . ', '
. $this->prenom . ', '
. $this->adresse . ', '
. $this->telephone . ']';
}
}
$personne = new Personne(
'Madame',
'Waldec',
'Anne',
'75 rue Belleville 75010 Paris',
0142152432);
//Appel implicite de la méthode __toString()
echo $personne;
La fonction __toString() est applelée automatiquement lorsque l'objet est appelé automatiquement à partir d'une commande echo ou print.
Néanmoins dans certaines conditions, la fonction toString() ne pourra être invoquées implicitement à l'exécution du programme.
echo 'Une chaine ' . $objet;
echo "Une chaine $objet";
echo (string)$objet;
Dans le premier cas, il est possible de pallier à ce problème en passant une liste de paramètres à la fonction echo.
echo 'Une chaine ', $objet, 'Une autre chaine';