名前付きパラメーターは、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'=>''
);