繁体   English   中英

获取具有默认值的函数参数

[英]get function parameter with default value

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

我当然使用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   
}

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

来自文档:

<?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

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

$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"

这应该给你足够的信息来找出答案。 也就是说,在进入手册之前。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM