toString()

Aus php bar
Wechseln zu: Navigation, Suche

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:

 class Benutzer
 {
     protected $name;
 
     public function __construct( $name )
     {
         $this->name = $name;
     }
     
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


Meine Werkzeuge