Иногда, если у меня много параметров со значениями по умолчанию, я использую массив для хранения аргументов и объединяю его со значениями по умолчанию.
public function doSomething($requiredArg, $optional = array())
{
$defaults = array(
'arg1' => 'default',
'arg2' -> 'default'
);
$options = array_merge($defaults, $optional);
}
Действительно имеет смысл, только если у вас много аргументов.