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

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

藏色散人
Libérer: 2023-04-07 06:38:01
original
11114 Les gens l'ont consulté

__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;
Copier après la connexion

Résultat :

go go go
Copier après la connexion

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;
Copier après la connexion

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
很明显,页面报了一个致命错误,这是语法所不允许的。
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal