Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erklärung der __toString()-Methode in PHP

Detaillierte Erklärung der __toString()-Methode in PHP

藏色散人
藏色散人Original
2019-07-24 14:00:4811026Durchsuche

__toString(), die Antwortmethode, wenn die Klasse als String behandelt wird

Funktion:

__toString()-Methode wird verwendet Für eine Klasse: So reagieren Sie, wenn sie als Zeichenfolge behandelt wird. Zum Beispiel, was „echo $obj;“ anzeigen soll.

Hinweis:

Diese Methode muss eine Zeichenfolge zurückgeben, andernfalls wird ein schwerwiegender Fehler der Stufe „E_RECOVERABLE_ERROR“ ausgegeben.

Warnung:

In der __toString()-Methode können keine Ausnahmen ausgelöst werden. Dies führt zu einem schwerwiegenden Fehler.

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;

Ergebnis:

go go go

Was passiert also, wenn die magische Methode __toString() ohne die Klasse ausgeführt wird? Testen wir es:

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;

Ergebnis:

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

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der __toString()-Methode in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn