Useful to convert objects that, when printed (say in debugging), will give you output like “Resource ID blah blah”, or error messages telling you you can’t print the object.
Example:
class Person {
function getName() { return "Bob"; }
function getAge() { return 44; }
function __toString() { // Controls how this object will represent itself when printed
$desc = $this->getName();
$desc .= " (age ".$this->getAge().")";
return $desc;
}
}$person = new Person(); print $person; // We get the printout defined in __toString() here...