Edit report at https://bugs.php.net/bug.php?id=53648&edit=1
ID: 53648
Comment by: ianbytchek 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:
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?
Previous Comments:
------------------------------------------------------------------------
[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!
------------------------------------------------------------------------
[2012-12-04 16:41:50] nikic@php.net
@benjamin: I don't think anyone opposes this feature request, it's just too hard to
implement. Allowing __toString to throw exceptions would require any internal code doing a zval to
string conversion to be exception-safe. See also: http://markmail.org/message/lkpmpnhrvcbafhkd
------------------------------------------------------------------------
[2012-12-04 12:57:36] benjamin dot morel at strictcoding dot co dot uk
I strongly support this feature request.
I haven't read any valid supportive argument so far, for keeping this behaviour as
it is currently.
In case someone would be worried about backward compatibility issues, this change
could be introduced with the next major version, PHP 5.5!
I would be grateful if a member of the PHP team could review this request.
------------------------------------------------------------------------
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