toString()
Mit der Methode __toString() wird von einem Objekt ein String zurückgegeben, der eine Stringdarstellung des Objektes ist. Die __toString() Methode wird in PHP 5 automatisch aufgerufen, wenn eine Typenumwandlung zu einer Zeichenkette stattfindet, z. B. wenn man die Objektreferenz direkt, mit echo bzw. print ausgibt oder mit (string) $objekt_referenz oder strval( $objekt_referenz ) verwendet.
Beispiel:
1 class Benutzer 2 { 3 protected $name; 4 5 public function __construct( $name ) 6 { 7 $this->name = $name; 8 } 9 10 public function __toString() 11 { 12 return $this->name; 13 } 14 } 15 16 $benutzer = new Benutzer( 'Manfred' ); 17 echo $benutzer;
Ausgabe:
Manfred
Stringverknüpfung
Bei String-Verknüpfungen mit dem Vereinigungs-Operator (.) wird die __toString()-Methode in PHP Versionen < 5.2 nicht aufgerufen.
Insbesondere im Zusammenhang mit echo muss beachtet werden, dass die __toString()-Methode nicht ausgeführt wird. So bekommt man bei
String-Verknüpfungen mit dem Vereinigungs-Operator:
1 $benutzer = new Benutzer( 'Manfred' ); 2 echo 'Benutzer: ' . $benutzer;
Ausgabe:
Benutzer: Object id #1
Um das erwartete Ergebnis zu bekommen, kann man die einzelnen Teile als eigene Parameter übergeben:
1 $benutzer = new Benutzer( 'Manfred' ); 2 echo 'Benutzer: ', $benutzer;
oder vorher einer Variablen zuweisen:
1 $benutzer = new Benutzer( 'Manfred' ); 2 $benutzer_string = (string) $benutzer; 3 echo 'Benutzer: ' . $benutzer_string;
Ausgabe:
Benutzer: Manfred