我有一个函数,但它包含很多这样的参数;
function F(param1=false,param2=false,param3=false,param4=false) { ... }
我的问题是,当我使用该函数并在参数中使用该数组时,我可以创建一个数组吗?面积而不是变量?像这样:
$x = array(
'param1' => $param1,
.
.
.
);
//then
F($x);
你绝对可以。试试这个:
$params = array(
'param1' => $param1,
'param2' => $param2,
'param3' => $param3,
);
function arrayParams($params=array()){
$param1 = $params['param1'];
// we want param2 to default to false
if (! array_key_exists('param2', $params)){
$params['param2'] = false;
}
echo "$param1\n";
echo "$param2\n";
}
arrayParams($params);
是的你可以。但是您将失去轻松将某些变量设置为默认值的可能性。
一个美观的解决方案是将一个类而不是数组传递给函数,以便将未定义的参数保持为默认值。