On Dec 15, 2003, at 1:09 AM, Andi Gutmans wrote:


At 08:35 PM 12/14/2003 -0500, Jon Parise wrote:
On Sun, Dec 14, 2003 at 03:41:10PM +0100, Sebastian Bergmann wrote:

> > It is supported by "print" and for internal extensions such as
> > SimpleXML which require this.
>
>   How is it supported by "print" when
>
>     print $defect->thrownException()
>
>   does not work but the object returned from thrownException() has a
>   __toString() method?

Hopefully, this still works (don't have a recent PHP5 build to try):

print (string)$defect->thrownException();

The explicit cast also addresses this case:

print (string)$defect->thrownException() . "\n";

Nope. How is it different or nicer than doing $defect->thrownException()->__toString()?
It saves you 4 characters?

If it doesn't do anything 'magical', why bother with the __? If you always have to call it manually, it should be an interface:


interface Stringable {
        public function toString();
}

And that way extensions and user code both can decide if they want to give special treatment to objects that implement Stringable.

George

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to