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.