Edit report at https://bugs.php.net/bug.php?id=53648&edit=1
ID: 53648
Comment by: benjamin dot morel at gmail dot com
Reported by: clicky at erebot dot net
Summary: Allow __toString() to throw exceptions
Status: Suspended
Type: Feature/Change Request
Package: Class/Object related
PHP Version: 5.3.4
Block user comment: N
Private report: N
New Comment:
Note that, for what it's worth, starting from version 3.4.1, HHVM allows __toString() to throw
exceptions:
http://3v4l.org/jFfUh
Do notice also that miraculously, PHP 5.0 and 5.1 did allow __toString() to throw exceptions! How is
that even possible?
Previous Comments:
------------------------------------------------------------------------
[2015-03-29 09:31:46] benjamin dot morel at gmail dot com
Now would be the time indeed! Could a core developer comment on this issue?
------------------------------------------------------------------------
[2015-03-14 19:46:39] ianbytchek at gmail dot com
Any chance to account for this in PHP 7? I've read that many things in the core are being
re-written / -factored. Would now be the right time to look into this?
------------------------------------------------------------------------
[2014-09-08 09:25:28] benjamin dot morel at gmail dot com
By the way, it's interesting to note that calling __toString() manually works fine:
class A {
public function __toString() {
throw new Exception();
}
}
echo (new A); // fatal error
echo (new A)->__toString(); // exception
Still no news on that issue, 2 years later? It's a very big blocking issue for doing
interesting things in modern frameworks.
------------------------------------------------------------------------
[2012-12-05 01:13:22] aharvey@php.net
Suspending: as Stas explained in the linked e-mail thread, it's "pretty hard" to do
in the current engine.
Should there ever be a Zend Engine 3, however, this could be revisited.
------------------------------------------------------------------------
[2012-12-04 17:15:19] benjamin dot morel at strictcoding dot co dot uk
@nikic: too bad, I did not imagine that this was a problem with PHP internals, but
rather an architectural choice. Can we keep this feature request open, until
someone finds a solution? It would be good to keep this as a target!
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=53648
--
Edit this bug report at https://bugs.php.net/bug.php?id=53648&edit=1