0

我知道如何获取函数参数。

我当然使用 ReflectionMethod 来获取函数参数,但目前我无法获取这些参数的默认值。

这是我定义函数的代码

class A{
    public function fn($para1,$para2="not required"){
            //some kind of stuff
    }
}

获取函数参数的代码

$meth = new ReflectionMethod("A","fn");
foreach ($meth->getParameters() as $param) {
    //some kind of stuff   
}

现在请告诉我如何获取函数参数的默认值

4

2 回答 2

2

从文档:

<?php
function foo($test, $bar = 'baz')
{
    echo $test . $bar;
}

$function = new ReflectionFunction('foo');

foreach ($function->getParameters() as $param) {
    echo 'Name: ' . $param->getName() . PHP_EOL;
    if ($param->isOptional()) {
        echo 'Default value: ' . $param->getDefaultValue() . PHP_EOL;
    }
    echo PHP_EOL;
}
?>

http://www.php.net/manual/en/reflectionparameter.getdefaultvalue.php

于 2013-11-11T09:16:11.187 回答
0

这是一种很容易找到答案的方法。

$meth = new ReflectionMethod("A","fn");
foreach ($meth->getParameters() as $param) {
        var_dump(get_class_methods(get_class($param)));
}

这将打印所有可用方法的列表,这是最后几个:

[11]=> string(10) "isOptional"
[12]=> string(23) "isDefaultValueAvailable"
[13]=> string(15) "getDefaultValue"

这应该为您提供足够的信息来找出答案。也就是说,在去手册之前。

于 2013-11-11T09:19:22.577 回答