ID: 45765 Updated by: [EMAIL PROTECTED] Reported By: RQuadling at GMail dot com -Status: Assigned +Status: Closed Bug Type: Reflection related Operating System: Windows XP SP2 PHP Version: 5.2CVS, 5.3CVS, 6CVS Assigned To: felipe New Comment:
This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. Fixed in 5.2, 5.3 and HEAD. Previous Comments: ------------------------------------------------------------------------ [2008-08-10 23:51:35] [EMAIL PROTECTED] It's also reproducible on 5_2, then not related with last changes. ------------------------------------------------------------------------ [2008-08-08 19:54:08] [EMAIL PROTECTED] Dmitry, I guess it is due the last changes with constants. ------------------------------------------------------------------------ [2008-08-08 15:18:04] RQuadling at GMail dot com If I change the default to a string, the output is (and I just noticed that it is truncated) ... Object of class [ <user> class foo ] { @@ C:\tr.php 2-9 - Constants [1] { Constant [ string BAR ] { foo's bar } } - Static properties [0] { } - Static methods [0] { } - Properties [0] { } - Dynamic properties [0] { } - Methods [1] { Method [ <user> public method test ] { @@ C:\tr.php 5 - 7 - Parameters [1] { Parameter #0 [ <optional> $s_Text = 'Replaced self::...' ] } } } } ------------------------------------------------------------------------ [2008-08-08 15:16:21] RQuadling at GMail dot com Description: ------------ If you have a method with a parameter whose default is a local class constant, the ReflectionObject throws a Fatal Error. Reproduce code: --------------- <?php class foo { const BAR = "foo's bar"; function test ($s_Text = self::BAR) { echo $s_Text, PHP_EOL; } } $o_Foo = new foo(); ReflectionObject::export($o_Foo); Expected result: ---------------- Object of class [ <user> class foo ] { @@ C:\tr.php 2-9 - Constants [1] { Constant [ string BAR ] { foo's bar } } - Static properties [0] { } - Static methods [0] { } - Properties [0] { } - Dynamic properties [0] { } - Methods [1] { Method [ <user> public method test ] { @@ C:\tr.php 5 - 7 - Parameters [1] { Parameter #0 [ <optional> $s_Text = self::BAR] } } } } Actual result: -------------- Fatal error: Undefined class constant 'self::BAR' in C:\tr.php on line 13 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=45765&edit=1