Pokombinuj z func_num_args i switch. Skoro jakaś metoda obsługuje ściśle określoną liczbę parametrów maksymalnie, to brakujące musisz ustawić na elementy "neutralne" (czyli albo false, albo 0 ) by wychwycić ich brak. Jak?
Przypuśćmy możesz w funkcji maksymalnie obsłużyć 5 parametrów. Jeśli będzie ich mniejsza ilość - uzupełniasz je poprzez false, jeśli równa - ok, jeśli większa - ignorujesz te powyżej. Jak by to mogło wyglądać?
function test() {
case 0:
$args[0] = false;
case 1:
$args[1] = false;
case 2:
$args[2] = false;
case 3:
$args[3] = false;
case 4:
$args[4] = false;
case 5:
break;
default:
}
//tu robisz co chcesz już na tablicy $args
}
Switch jest tu najważniejszy, ponieważ on modyfikuje tak listę parametrów, by uzupełnić brakujące parametry poprzez false. Zwróć uwagę na brak break aż do case 5. To ważne, ponieważ dla 5 parametrów jedynie nastąpi wyjście ze switcha. A co jeśli jest parametrów mniej, jak choćby 3? Ano tabela $args uzupełni $args[3] (4 parametr) na false i przejdzie do case 4 (dlatego brak break!) i uzupełni $args[4](5 parametr) na false oraz przejdzie do case 5 i dopiero tu wyskoczy ze switcha

Defaultem jedynie potraktowałem jeśli masz więcej parametrów, bo wtedy nastąpi obcięcie ich do wymaganych 5

Zrobiłem coś więc o charakterze "normalizatora" liczby parametrów.
PS: Oczywiście uzycie switch ma sens jedynie dla małej liczby akceptowanych parametrów. Przy dużej można użyć do tego celu jak powyżej -> pętli.