__toString

Versucht man, eine Variable, die eine Referenz auf ein Objekt enthält, mit echo oder print als String zu verwenden, so gibt PHP im Normalfall eine PHP-interne Identifikationsnummer des Objektes aus.

Beispiel 2.9: Typumwandlung eines Objektes in einen String ohne __toString-Methode

<?php
class BankAccount {
  private $balance = 0.0;
}
 
$bankAccount = new BankAccount;
 
print $bankAccount;
?>
Object id #1


Verfügt das Objekt jedoch über eine Methode __toString(), so wird diese aufgerufen. Ihr Rückgabewert wird anstelle der PHP-internen Identifikationsnummer verwendet. Die Implementierung der Methode __toString() bietet sich beispielsweise dann an, wenn man jederzeit einfach auf eine textuelle Repräsentation eines Objektes zugreifen möchte und sich den "Umweg" über einen expliziten Methodenaufruf sparen möchte.

Beispiel 2.10: Typumwandlung eines Objektes in einen String mit __toString-Methode

<?php
class BankAccount {
  private $balance = 0.0;
 
  public function __toString() {
    return sprintf(
      'Der Stand dieses Kontos beträgt %01.2f Euro.',
 
      $this->balance
    );
  }
}
 
$bankAccount = new BankAccount;
 
print $bankAccount;
?>
Der Stand dieses Kontos beträgt 0.00 Euro.