Req #53648 [Com]: Allow __toString() to throw exceptions

From: Date: Sun, 29 Mar 2015 09:41:49 +0000
Subject: Req #53648 [Com]: Allow __toString() to throw exceptions
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-191691@lists.php.net to get a copy of this message
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


Thread (14 messages)

« previous php.bugs (#191691) next »