Wir alle wissen, dass wir, nachdem wir eine Klasse instanziiert haben, beim Zugriff auf die Attribute der Klasse immer im Format $instantiation name->attribute name darauf zugreifen. Haben Sie das Objekt schon einmal direkt mit echo oder print ausgegeben? Probieren Sie die Ergebnisse aus. Einige Leute sagen, dass dies nicht funktionieren sollte und ein Fehler gemeldet wird. Ja, eine solche direkte Ausgabe wird tatsächlich einen Fehler melden, aber wenn wir die magische Methode __toString verwenden, ist das in Ordnung. Die Methode __toString() wandelt das Objekt vor der Ausgabe zunächst in einen String um, sodass es mit echo oder print ausgegeben werden kann.
Instanzanalyse:
<?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 . '今年已经' . $this->age . '岁了'; } } $preson = new Preson('小明',18); echo $preson;
Codeanalyse:
Wir erstellen zuerst eine menschliche Klasse, definieren Attribute, erstellen einen Konstruktor und dann instanziieren wir diese Klasse. Schließlich Geben Sie den Klassennamen direkt wieder. Sie werden feststellen, dass die Fehlermeldung auf der Seite angezeigt wird: Objekt der Klasse Preson konnte in D:WWWtostring.php in Zeile 15 nicht in einen String konvertiert werden. Dies bedeutet, dass die Klasse des Objekts nicht in eine Zeichenfolge konvertiert und nicht ausgegeben werden kann. Also fügen wir einfach die Methode __toString() hinzu und geben die erforderlichen Ergebnisse direkt in der Methode zurück.
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung der Instanz der magischen Methode ___toString() (PHP-Tutorial für fortgeschrittene objektorientierte Objekte). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!