-1

我有一个函数,但它包含很多这样的参数;

function F(param1=false,param2=false,param3=false,param4=false) { ... }

我的问题是,当我使用该函数并在参数中使用该数组时,我可以创建一个数组吗?面积而不是变量?像这样:

$x = array(
'param1' => $param1,
.
.
.
);
//then
F($x);
4

2 回答 2

0

你绝对可以。试试这个:

$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);    
于 2013-04-01T21:28:31.167 回答
-1

是的你可以。但是您将失去轻松将某些变量设置为默认值的可能性。

一个美观的解决方案是将一个类而不是数组传递给函数,以便将未定义的参数保持为默认值。

于 2013-04-01T21:28:06.367 回答