__toString() or not to String

PHP version 5 introduced a handy new magic method, __toString(), which lets you do something to the tune of:
class Person {
private $name;

function __construct($name="John Doe"){
$this->name = $name;
}

function __toString(){
return (string) $this->name;
}
}

$bob = new Person('Bob');

echo $bob; //prints Bob That's nice and convenient. But what if I want to add a little punch: