<?php
class test
{
public function __toString()
{
$e = new Exception('mooo');
var_dump($e->getTrace());
// throw $e;
return null;
}
}
$x = new test;
var_dump((string)$x);
array(1) {
[0]=>
array(6) {
["file"]=>
string(9) "/in/4Ng9e"
["line"]=>
int(17)
["function"]=>
string(10) "__toString"
["class"]=>
string(4) "test"
["type"]=>
string(2) "->"
["args"]=>
array(0) {
}
}
}
Fatal error: Uncaught TypeError: test::__toString(): Return value must be of type string, null returned in /in/4Ng9e:11
Stack trace:
#0 /in/4Ng9e(17): test->__toString()
#1 {main}
thrown in /in/4Ng9e on line 11
Process exited with code 255.
Output for 7.4.0 - 7.4.33
array(1) {
[0]=>
array(6) {
["file"]=>
string(9) "/in/4Ng9e"
["line"]=>
int(17)
["function"]=>
string(10) "__toString"
["class"]=>
string(4) "test"
["type"]=>
string(2) "->"
["args"]=>
array(0) {
}
}
}
Fatal error: Uncaught Error: Method test::__toString() must return a string value in /in/4Ng9e:17
Stack trace:
#0 {main}
thrown in /in/4Ng9e on line 17
Process exited with code 255.
array(1) {
[0]=>
array(6) {
["file"]=>
string(9) "/in/4Ng9e"
["line"]=>
int(17)
["function"]=>
string(10) "__toString"
["class"]=>
string(4) "test"
["type"]=>
string(2) "->"
["args"]=>
array(0) {
}
}
}
Catchable fatal error: Method test::__toString() must return a string value in /in/4Ng9e on line 17
Process exited with code 255.
Output for 5.0.0 - 5.0.5, 5.1.0 - 5.1.6
string(12) "Object id #1"
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/4Ng9e on line 6
Process exited with code 255.
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/4Ng9e on line 6
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/4Ng9e on line 6
Process exited with code 255.