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
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.