Возможно, лучший способ - передать один аргумент, который на самом деле является массивом аргументов.
например:
function my_sum($data){
$sum = 0;
foreach($sum as $value){
$sum+=$value;
}
return $sum;
}
echo my_sum(array(1, 2, 5, 109, 10231));
Я часто использую ассоциативный массив для передачи аргументов функции. Это очень полезно, если представляемые аргументы являются необязательными или имеют другую природу.
например:
$data = array(
'date' => '10/4/06',
'name' => 'biggles',
'occupation' => 'pilot'
);
add_person($data);
Это также позволит лучше обнаруживать ошибки. Если у вас много много аргументов, вполне возможно получить их в неправильном порядке. Кроме того, если вы расширяете или модифицируете функцию, она с большей вероятностью продолжит работу с существующим кодом.