【发布时间】:2011-06-17 08:08:32
【问题描述】:
命名参数非常适合 PHP 用户定义函数或类中的一长串选项。但是嵌套选项呢?
例如:
function foobar($foo,$bar,$options=array()) {
$default_options = array('option1'=>'','option2'=>'hello','option3'=>array('option1'=>true,'option2'=>''));
$options = array_merge($default_options,(array)$options);
}
所以选项 3 是另一个带有子选项的数组。我们是否也需要将它们放在 for 循环中以合并子选项?在这种情况下你们会怎么做?
编辑:
这是函数调用:
foobar('foo','bar',array('option1'=>'foo','option3'=>array('option1'=>false)));
$options 的结尾结构:
array(
'option1'=>'foo',
'option2'=>'hello',
'option3'=>array(
'option1'=>false,
'option2'=>''
);
【问题讨论】:
-
检查array_merge(array1, array2);
-
是的,但我已经这样做了:$options = array_merge($default_options,(array)$options);
-
另一个选项是将每个嵌套选项数组添加为额外参数。很难在嵌套数组或使其成为位置参数的一个额外参数之间进行选择。
标签: php named-parameters multidimensional-array