0

我只想修改函数中的第二个默认参数,但我不知道如何

function test($a, $b = "b", $c = "c"){
    echo $a." ".$b." ".$c;
}

test("a");
test("a","z","e");
test("a","z");

我想以使用此功能保持$b默认和更改为例$c。我试试

test("a",,"f");

但它不起作用。

4

2 回答 2

0

你可以试试 ,

function test($a, $b = "b", $c = "c"){
    echo $a." ".$b." ".$c;
}

 function get_default_param($fn)
 {
 $function = new ReflectionFunction($fn);
 $default=array();

  foreach ($function->getParameters() as $param) {
  if ($param->isOptional()) {
    $default[]=$param->getDefaultValue() ;
}else{
 $default[]='';
}

}
return $default;
}


$default=get_default_param('test');//for getting all default parameters of 'test' as an array
test("a",$default[1],"f");

输出

 a b f
于 2013-06-11T12:18:54.263 回答
0

这在现在的 PHP 中是不可能的。您必须手动传递默认值,例如:

test("a", "b", "f"):

有一个关于此的 RFC:https ://wiki.php.net/rfc/skipparams但它还没有取得任何成功。

于 2013-06-11T12:20:06.867 回答