Edit report at https://bugs.php.net/bug.php?id=61602&edit=1

 ID:                 61602
 Updated by:         der...@php.net
 Reported by:        sebast...@php.net
 Summary:            Allow access to name of constant used as default
                     value
 Status:             Open
 Type:               Feature/Change Request
 Package:            Reflection related
 Operating System:   Irrelevant
 PHP Version:        5.4Git-2012-04-02 (Git)
 Block user comment: N
 Private report:     N

 New Comment:

It's definitely possible, I've just added something like this to VLD: 
https://github.com/derickr/vld/commit/f22862bfa8620780906f0e692f929a543264b5f8


Previous Comments:
------------------------------------------------------------------------
[2012-04-02 14:14:16] sebast...@php.net

Description:
------------
When a constant is used for the default value of an optional parameter, the 
Reflection API (tries to) resolve(s) the constant to its value and then returns 
it as the default value.

In addition, I would like to have two additional methods in ReflectionParameter 
that expose 1) whether or not a default value "is a" constant and 2) the name 
of the constant.

In the example below, I am using temporary names ("defaultValueIsConstant" and 
"getDefaultValueConstantName") for these two methods because I cannot think of 
sensible method names right now.

Test script:
---------------
<?php
class Foo {
    const bar = '...';

    public function baz($bar = self::bar) {
    }
}

$m = new ReflectionMethod('Foo', 'baz');
$p = $m->getParameters();

foreach ($p as $_p) {
    var_dump($_p->getDefaultValue());

    if ($_p->defaultValueIsConstant()) {
        var_dump($_p->getDefaultValueConstantName());
    }
}

Expected result:
----------------
string(3) "..."
string(9) "self::bar"

Actual result:
--------------
string(3) "..."


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=61602&edit=1

Reply via email to