Heim  >  Artikel  >  Backend-Entwicklung  >  Wozu dient die PHP-Methode __toString()?

Wozu dient die PHP-Methode __toString()?

青灯夜游
青灯夜游Original
2021-06-18 17:57:322424Durchsuche

„__toString()“ ist eine magische Methode in PHP, die automatisch aufgerufen wird, wenn ein Objekt in einen String umgewandelt wird. Sie wird verwendet, um zu bestimmen, wie eine Klasse reagieren soll, wenn sie als String behandelt wird. Andernfalls wird ein schwerwiegender Fehler der Stufe „E_RECOVERABLE_ERROR“ ausgegeben.

Wozu dient die PHP-Methode __toString()?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP Version 7.1, DELL G3-Computer

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

__toString() ist a Magie in PHP-Methode, die automatisch aufgerufen wird, wenn ein Objekt in einen String konvertiert wird.

Bei der objektorientierten Programmierung bietet PHP eine Reihe magischer Methoden, die viel Komfort beim Programmieren bieten und in PHP eine sehr wichtige Rolle spielen. Magic-Methoden in PHP beginnen normalerweise mit __ (zwei Unterstrichen) und müssen nicht explizit aufgerufen werden, sondern werden unter bestimmten Bedingungen automatisch aufgerufen.

Funktion:

Die Methode __toString() wird verwendet, um festzulegen, wie eine Klasse reagieren soll, wenn sie als String 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:

kann in der Methode __toString() keine Ausnahmen auslösen. 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 es in der Klasse keine magische Methode __toString() gibt? 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
很明显,页面报了一个致命错误,这是语法所不允许的。

Erweiterte Informationen: Die magische Methode in PHP ist in der folgenden Tabelle dargestellt:

__sleep()__wakeup()__call() __callStatic()__toString() Methode Wird automatisch aufgerufen, wenn Wird automatisch aufgerufen, wenn die Funktion var_export() verwendet wird und einen Array-Parameter akzeptiertWird automatisch aufgerufen, wenn Clone zum Kopieren eines Objekts verwendet wirdVerwenden Sie var_dump(), um beim Drucken von Objektinformationen automatisch aufgerufen zu werdenEmpfohlenes Lernen: „PHP-Video-Tutorial“
Magische Methode Funktion
__konstruieren( ) Wird automatisch aufgerufen, wenn eine Klasse instanziiert wird
__destruct() Wird automatisch aufgerufen, wenn das Klassenobjekt aufgebraucht ist
__set() Wird automatisch aufgerufen, wenn undefinierten Attributen Werte zugewiesen werden
__get() Wird automatisch aufgerufen, wenn undefinierte Eigenschaften aufgerufen werden
__isset() Wird automatisch aufgerufen, wenn die Funktion isset() oder empty() verwendet wird
Wird beim Serialisieren mit Serialize automatisch aufgerufen
Wird beim Deserialisieren mit Unserialize automatisch aufgerufen
Wird beim Aufruf einer nicht vorhandenen Methode automatisch aufgerufen
Wird automatisch aufgerufen, wenn eine nicht vorhandene statische Methode aufgerufen wird.
__set_state()
__clone()
__debugInfo ()

Das obige ist der detaillierte Inhalt vonWozu dient die PHP-Methode __toString()?. 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