関数の 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");
しかし、うまくいきません。
これは、現在の PHP では不可能です。次のように、デフォルト値を手動で渡す必要があります。
test("a", "b", "f"):
これに関する RFC があります: https://wiki.php.net/rfc/skipparamsしかし、まだ成功していません。
あなたが試すことができます 、
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