|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2012-04-02 14:14 UTC] sebastian@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) "..."
PatchesgetDefaultValueConstantName.diff (last revision 2012-04-03 00:23 UTC by pierrick@php.net)Pull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Oct 23 14:00:02 2025 UTC |
Updated example script that uses new method names: ➜ ~ cat test.php <?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->isDefaultValueConstant()); if ($_p->isDefaultValueConstant()) { var_dump($_p->getDefaultValueConstantName()); } } ➜ ~ php test.php bool(true) string(9) "self::bar"