--TEST-- Bug #26166 (__toString() crash when no values returned) --FILE-- obj = new Foo(); } function __toString() { return $this->obj->__toString(); } } $o = new Bar; echo $o; echo "===NONE===\n"; function my_error_handler($errno, $errstr, $errfile, $errline) { var_dump($errstr); } set_error_handler('my_error_handler'); class None { function __toString() { } } $o = new None; echo $o; echo "===THROW===\n"; class Error { function __toString() { throw new Exception("This is an error!"); } } $o = new Error; try { echo $o; } catch (Exception $e) { echo "Got the exception\n"; } ?> ===DONE=== --EXPECTF-- Hello World! ===NONE=== string(52) "Method None::__toString() must return a string value" ===THROW=== Fatal error: Method Error::__toString() must not throw an exception in %sbug26166.php on line %d