ID: 45765
Updated by: [email protected]
Reported By: RQuadling at GMail dot com
-Status: Open
+Status: Assigned
Bug Type: Reflection related
Operating System: Windows XP SP2
PHP Version: 5.2CVS, 5.3CVS, 6CVS
-Assigned To:
+Assigned To: felipe
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.