Maison  >  Article  >  développement back-end  >  Explication détaillée de l'instance de la méthode magique ___toString() (tutoriel avancé orienté objet php)

Explication détaillée de l'instance de la méthode magique ___toString() (tutoriel avancé orienté objet php)

巴扎黑
巴扎黑original
2017-04-18 18:16:202127parcourir

Nous savons tous qu'après avoir instancié une classe, lorsque nous accédons aux attributs de la classe, nous y accédons toujours au format $nom d'instanciation->nom d'attribut. Alors, avez-vous déjà généré directement l'objet en utilisant echo ou print ? Essayez les résultats. Certaines personnes disent que cela ne devrait pas fonctionner et qu'une erreur sera signalée. Oui, une telle sortie directe signalera effectivement une erreur, mais lorsque nous utiliserons la méthode magique __toString, tout ira bien. La méthode __toString() convertira d'abord l'objet en chaîne avant de le sortir, afin qu'il puisse être sorti en utilisant echo ou print.

Analyse d'instance :

<?php
header("content-type:text/html;charset=utf-8");
class Preson{
public $name;
private $age;
function __construct($name,$age)
{
$this->name = $name;
$this->age = $age;
}
public function __toString()
{
return $this->name . &#39;今年已经&#39; . $this->age . &#39;岁了&#39;;
}
}
$preson = new Preson(&#39;小明&#39;,18);
echo $preson;

Analyse de code :

Nous créons d'abord une classe humaine, définissons des attributs, créons un constructeur, puis nous instancions cette classe, Enfin, fait écho directement au nom de la classe. Vous constaterez que le message d'erreur s'affichera sur la page : L'objet de la classe Preson n'a pas pu être converti en chaîne dans D:WWWtostring.php à la ligne 15. Cela signifie que la classe de l'objet ne peut pas être convertie en chaîne et ne peut pas être sortie. Nous ajoutons donc simplement la méthode __toString() et renvoyons simplement les résultats requis directement dans la méthode.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn