А ещё можно не указывать аргументы функции явно, а воспользоваться динамическими аргументами. В этом поможет функция
func_get_args(). И в теле уже самой функции просто валидировать получаемые функцией аргументы. Конечный результат будет таким:
function myfunc()
{
var_dump(func_get_args());
}
myfunc(1, 2, 3, 4);
myfunc(1, 2, 4);
myfunc(1, 5, 6, 7, 8, 9);
Плюс тебе в помощь функции
func_num_args() и
func_get_arg().
Хотя я больше за вариант от
dkorshunov:
myfunc(1, 2, NULL, 4);