ID:               37537
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Verified
+Status:           Closed
 Bug Type:         Documentation problem
 Operating System: Any
 PHP Version:      5.2.0
 New Comment:

This bug has been fixed in the documentation's XML sources. Since the
online and downloadable versions of the documentation need some time
to get updated, we would like to ask you to be a bit patient.

Thank you for the report, and for helping us make our documentation
better.

"Since PHP 5.2.0, __toString() is called in any string context (e.g. in
printf() with %s modifier) but not in other types contexts (e.g. with %d
modifier)."


Previous Comments:
------------------------------------------------------------------------

[2007-06-20 19:05:15] [EMAIL PROTECTED]

See also bug#41750

------------------------------------------------------------------------

[2006-05-29 12:45:28] [EMAIL PROTECTED]

I don't think it's *that* clear.

Consider that when you pass a "string" to %d guess what -> it works,
the string is converted to an int. But in case of an object, it does not
work this way automatically. If you would write (string)$obj it again
would work.

I don't consider this as clear as blue sky. :)

------------------------------------------------------------------------

[2006-05-29 11:52:53] [EMAIL PROTECTED]

No you shouldn't.
IMO it's quite clear that __toString wouldn't be called 
with %i or %e or anything else than %s. But I guess there 
is no harm in documenting that too..

------------------------------------------------------------------------

[2006-05-29 06:01:08] [EMAIL PROTECTED]

I had a small conversation with the autor on internals@ and it is very
important, because you gave the printf example, that __toString() will
only be called if an stirng modified %s is encountered. If it's %d for
integer, __toString() is not called.

This may or may not be expected, but it's the current implementation.
Should I file another report for it?

------------------------------------------------------------------------

[2006-05-26 12:13:46] [EMAIL PROTECTED]

http://php.net/oop5.magic#language.oop5.magic.tostring 
needs an updated before 5.2.0.

#1 Can't throw exceptions anymore
#2 Is called 'wherever it's appropriate' (e. 
printf("__toString: %s", $obj))

If language.exceptions will be updated to note where 
exceptions can't be thrown it'll need to note lot more then 
just __toString()

------------------------------------------------------------------------

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/37537

-- 
Edit this bug report at http://bugs.php.net/?id=37537&edit=1

Reply via email to