PHPで関数やメソッドの引数の数を柔軟にする方法

で、複数の引数が省略されたりすることも踏まえて、

test("a", "b", "c");

function test()
{
$args = func_get_args();
print_r($args);
}

とのことなんですけど、僕は割と、

test(array('name' => 'hoge',
'age' => 16));
function test($data)
{
echo $data['name'];
echo $data['age'];
}

が多いです。

デフォルト値対応とかは

function test($data)
{
$data['name'] = isset($data['name']) ? $data['name']
: 'no name';
$data['age']  = isset($data['age'])  ? $data['age']
: null;
echo $data['name'];
echo is_null($data['age']) ? 'no data' : $data['age'];
}

こんな。同じ要領でエラー投げてもいいですし。

メソッド呼ぶときに、引数の意味をキーで表現できるので、
単なる羅列に比べて、可読性が上がるんじゃないかな、と思いながら。