public function setSomething($what){
$this->something = $what;
}
...
$obj->setSomething(array('aaa', 'bbb', 'ccc'));
或
public function setSomething(){
$this->something = array_values(func_get_args());
}
...
$obj->setSomething('aaa', 'bbb', 'ccc');
您会使用哪种方法?为什么?
ps:如果你给出参数名称,第二个也可以用来模拟我认为的键:
$obj->setSomething($key1 = 'aaa', $key = 'bbb', $key = 'ccc');
答案 0 :(得分:2)
如果多个参数是可选的,我通常只使用数组。例如,如果我有一个可以获取公司ID,员工ID或两者的报告。我不会function report ($CompanyID = null, $EmployeeID = null)
,我会function report($array)
然后在函数内部执行if (isset($array['company_id']))...
等。
如果你认为你需要使用一个数组,因为你有太多的参数,这可能表明这个函数太复杂了,需要拆分。
编辑:请注意,这不是一般答案,因为我不确定它如何适用于您的setter问题,因为逻辑上setter只应该接受一个参数。在你的情况下,如果你的$this->something
期望一个数组,给它一个数组,而不是你必须变成一个数组的参数。