Pourquoi il est impossible de lever une exception à partir de __toString() ?
class a
{
public function __toString()
{
throw new Exception();
}
}
$a = new a();
echo $a;
le code ci-dessus produit ceci :
Fatal error: Method a::__toString() must not throw an exception in /var/www/localhost/htdocs/index.php on line 12
On m'a indiqué http://php.net/manual/en/migration52.incompatible.php où ce comportement est décrit, mais pourquoi ? Y a-t-il des raisons de le faire ?
Peut-être que quelqu'un ici le sait ?
Sur la page de suivi des bogues, l'équipe de développement de php, comme d'habitude, ne dit rien, mais voir le manuel : http://bugs.php.net/50699