Diria que todos los lenguajes modernos tienen algo como func_num_args() y func_get_args(), ... esta en C y C++, en Java, en Python.....
La forma con func_num_args() y func_get_args() no la vas a usar todo el tiempo no porque consuma mas recursos sino porque sencillamente es matar moscas con un cañon.
Si no puedes saber
a priori cuantos parametros tienes que procesar pues te toca
Para los programas de consola es fundamental poder detectar el numero de parametros si quieres hacer algo util, en ese caso se procesa el array
$argv y te fijas si esta o no vacio -- lo que equivaldria a usar func_num_args() -- y luego lo recorres para extraer los parametros. En este caso implicitamente habria una funcion main() que es tu programa principal tal y como es en C / C++ y Java