Я не знаю конкретного предела в количестве аргументов как фиксированное число. Быстрый тест показал, что у меня не было проблем с определением функции с 255 555 аргументами. Для определения функции и ее выполнения требуется некоторое время. Однако он работает.
Когда число было поднято, я столкнулся с ограничением памяти, которое может быть строковым ограничением. Возможно, вы захотите улучшить тестовый сценарий, использовать буфер и сохранить файл на диск последовательно и включить его:
$count = 255555;
$code = 'function test(%s) {return 1;}; return test();';
$params = ltrim(implode('=0, $p', range(0, $count)), '0, =').'=0';
echo eval(sprintf($code, $params));