0

関数の 2 番目のデフォルト パラメータを変更したいのですが、方法がわかりません。

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

これは、現在の PHP では不可能です。次のように、デフォルト値を手動で渡す必要があります。

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

これに関する RFC があります: https://wiki.php.net/rfc/skipparamsしかし、まだ成功していません。

于 2013-06-11T12:20:06.867 に答える
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 に答える