#27833 [Asn->Sus]: Concatenating overloaded objects fails

From: Date: Sat, 03 Apr 2004 17:25:13 +0000
Subject: #27833 [Asn->Sus]: Concatenating overloaded objects fails
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-57456@lists.php.net to get a copy of this message
ID: 27833 Updated by: andi@php.net Reported By: steph dot fox at virgin dot net -Status: Assigned +Status: Suspended Bug Type: Zend Engine 2 problem Operating System: win98 PHP Version: 5CVS-2004-04-02 (dev) Assigned To: andi New Comment: Forgot to change status to Suspended Previous Comments: ------------------------------------------------------------------------ [2004-04-03 12:24:11] andi@php.net In PHP 5.0 this won't be supported. __toString() will only be called automatically if it's the only argument to echo/print. Note that this does not affect internal extensions such as SimpleXML who require this to work in order to be useful. The main problem with supporting automatic __toString() calls is the fact that opcodes aren't reentrant and it requires restructuring of some of the infrastructure of the engine. Looking into this is on my TODO for post-stable 5.0. Can't promise anything though. ------------------------------------------------------------------------ [2004-04-03 08:16:06] steph dot fox at virgin dot net OK, I did my research now. Sadly run-tests doesn't work on win98 due to the piping element, but I found that building PHP with zend_std_cast_object_tostring included as part of the std_object_handlers struct gets rid of all the issues & doesn't cause any new issues in ext/simplexml's test batch. (I ran them manually). Of course the other new extensions that use std_object_handlers might be adversely affected, but it's override-able (no?). It's such an easy fix (must be if I can find it!), I'm obviously missing the reason that the cast_object property's currently set as NULL. The internals list archives show a huge discussion on the subject, most of which goes straight over my head. Just looking for clarity now.. ------------------------------------------------------------------------ [2004-04-02 03:19:53] steph dot fox at virgin dot net erm, yes it does - echo $obj; // works fine echo (string) $obj; // fails - but I thought that was _meant_ to fail currently :\ Andi, when you bogus this report, could you please clarify exactly what should or shouldn't happen at this point? Docs need to reflect intended behaviour too.. ------------------------------------------------------------------------ [2004-04-02 03:13:58] derick@php.net It doesn't work without the concat either. ------------------------------------------------------------------------ [2004-04-02 02:01:51] amt@php.net The advertising is wrong. This method was changed in RC 1 to prevent some potential crashes. You can no longer concat it. Hopefully this will be fixed in PHP 5.1. ------------------------------------------------------------------------ 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 http://bugs.php.net/27833 -- Edit this bug report at http://bugs.php.net/?id=27833&edit=1

« previous php.bugs (#57456) next »