Edit report at http://bugs.php.net/bug.php?id=46225&edit=1
ID: 46225
Comment by: olamedia at gmail dot com
Reported by: phpbugs at sevenlight dot com
Summary: Allow for optional arguments to __toString() magic
method
Status: Open
Type: Feature/Change Request
Package: Feature/Change Request
Operating System: OSX 10.5.5
PHP Version: 5.3.0alpha2
New Comment:
Why not to use another function instead of modifying system function?
class Test
{
public function toString($bDebug = FALSE)
{
return $bDebug ? 'This is the debugging output' : 'This is the
default
output';
}
public function __toString()
{
return $this->toString();
}
}
Previous Comments:
------------------------------------------------------------------------
[2008-10-03 15:28:30] phpbugs at sevenlight dot com
Description:
------------
I believe it should be possible to have optional arguments to the
__toString() magic method to allow for explicitly changing the behaviour
of this function. I understand why you cannot have any required
arguments, but I do not see why it would not be possible to have
optional arguments that would define the default behaviour.
Reproduce code:
---------------
class Test
{
public function __toString($bDebug = FALSE)
{
return $bDebug ? 'This is the debugging output' : 'This is the
default output';
}
}
$o = new Test();
echo $o . "\n";
echo $o->__toString(TRUE) . "\n";
Expected result:
----------------
This is the default output
This is the debugging output
Actual result:
--------------
Fatal error: Method Test::__tostring() cannot take arguments in
/srv/www/test/toString.php on line 3
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=46225&edit=1