|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2005-04-14 09:20 UTC] tony2001@php.net
[2005-04-14 09:40 UTC] alan_k@php.net
[2005-05-09 16:14 UTC] jason at amp-design dot net
[2005-05-10 03:54 UTC] alan_k@php.net
[2005-05-30 10:03 UTC] lsmith@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Dec 03 20:00:01 2025 UTC |
Description: ------------ This produces an error that should not happen. Instead, when you cast an object to a string that has no __toString defined, it should produce the objects internal ID. Oddly enough, the behaviour is inconsistent as ... class A { public function __call($name, $args) {echo $name;} } echo (new A); seems to work as expected. I can't see how this should behave differently from dereferencing from a variable. I guess the behaviour of string casting is undefined for objects that do not have __toString() defined, so I guess it is debateable if this is really a bug, or a querky language "feature" ;-) Note that this will work if one returns a value for __call(). Reproduce code: --------------- <?php class A { public function __call($name, $args) {echo $name;} } $a = new A; echo $a; ?> Expected result: ---------------- Object id #insert_number_here Actual result: -------------- __tostring Fatal error: Method A::__toString() must return a string value in /data/test.php on line 21