Maison  >  Article  >  développement back-end  >  Explication détaillée de la méthode __toString() en PHP

Explication détaillée de la méthode __toString() en PHP

藏色散人
藏色散人original
2019-07-24 14:00:4810956parcourir

__toString(), la méthode de réponse lorsque la classe est traitée comme une chaîne

Fonction :

La méthode __toString() est utilisée pour une classe Comment répondre lorsqu'elle est traitée comme une chaîne. Par exemple, ce que « echo $obj; » devrait afficher.

Remarque :

Cette méthode doit renvoyer une chaîne, sinon une erreur fatale de niveau `E_RECOVERABLE_ERROR` sera émise.

Attention :

Impossible de lever des exceptions dans la méthode __toString(). Cela entraînerait une erreur fatale.

Code :

<?php
class Person
{
    public $sex;
    public $name;
    public $age;
    public function __construct($name="",  $age=25, $sex=&#39;男&#39;)
    {
        $this->name = $name;
        $this->age  = $age;
        $this->sex  = $sex;
    }
    public function __toString()
    {
        return  &#39;go go go&#39;;
    }
}
$person = new Person(&#39;小明&#39;); // 初始赋值
echo $person;

Résultat :

go go go

Alors, que se passe-t-il si la méthode magique __toString() s'exécute sans elle dans la classe ? Testons-le :

Code :

<?php
class Person
{
    public $sex;
    public $name;
    public $age;
    public function __construct($name="",  $age=25, $sex=&#39;男&#39;)
    {
        $this->name = $name;
        $this->age  = $age;
        $this->sex  = $sex;
    }
    
}
$person = new Person(&#39;小明&#39;); // 初始赋值
echo $person;

Résultat :

Catchable fatal error: Object of class Person could not be converted to string in D:\phpStudy\WWW\test\index.php on line 18
很明显,页面报了一个致命错误,这是语法所不允许的。

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