Re: __toString() with cast is broken in php5 RC1
| From: | Andi Gutmans | Date: | Sat, 03 Apr 2004 17:00:42 +0000 |
| Subject: | Re: __toString() with cast is broken in php5 RC1 | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-8910@lists.php.net to get a copy of this message | ||
I think this is an interesting idea. The downside is that __toString() would need special treatment in the engine (possibly even an extra opcode). The upside is that people could always use __toString().
Andi
At 03:55 PM 4/2/2004 +1200, Jevon Wright wrote:
Can you add a default __toString() for all objects (which don't extend or implement a __toString()) then? Because at least then we could use $str = $anyobj->__toString(). Otherwise I don't think __toString() has any real functionality, except for print and echo... Jevon ----- Original Message ----- From: "Marcus Boerger" <helly@php.net> To: "David Giffin" <david@agent911.com> Cc: "Marcus Boerger" <helly@php.net>; <internals@lists.php.net> Sent: Friday, April 02, 2004 12:27 PM Subject: Re: [PHP-DEV] __toString() with cast is broken in php5 RC1 Hello David, generally the idea is to change this back. But i don't think we will be able to solve the related problems before PHP 5.1. marcus Friday, April 2, 2004, 2:03:38 AM, you wrote:Hi Marcus,Is this going to change back? The php5 documentation on the zend site shows that both casting and print/echo should work.I guess people could use the output buffering methods to get the print data for the time being. A not so happy work around :(Thanks again, DavidOn Fri, 2 Apr 2004, Marcus Boerger wrote:thatHello David,that's correct. See the NEWS file, 3rd entry:18 March 2004, PHP 5 Release Candidate 1 - Fixed numerous bugs with the just-in-time auto-global initialization,properly.could cause $_SERVER, $argv/$argc and other variables not to work(Zeev)(Zeev) - Fixed data corruption with constant assignments to object properties.echo- Changed __toString() to be called automatically only with print andthingsstatements. (Andi) Friday, April 2, 2004, 1:13:28 AM, you wrote:Hi There,I just got a chance tp update to PHP5 RC1 and noticed that somegettinghave changed for the __toString method. It seems that it it onlystringcalled when the object is printed or echo. Casting the object to a-- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.phpreturns the Object #. Here is an example:---- The Script:<?phpclass obj {function __toString() { return "yo!!\n"; }}$obj = new obj(); print_r($obj);$test = (string) $obj;print $test; print $obj;?>>----- Produces:obj Object ( ) Object id #1yo!!