В PHP 5.6 введен новый вариационный синтаксис , который поддерживает передачу по ссылке. (спасибо @outis за обновление)
function foo(&...$args) {
$args[0] = 'bar';
}
Для PHP 5.5 или ниже вы можете использовать следующий трюк:
function foo(&$param0 = null, &$param1 = null, &$param2 = null, &$param3 = null, &$param4 = null, &$param5 = null) {
$argc = func_num_args();
for ($i = 0; $i < $argc; $i++) {
$name = 'param'.$i;
$params[] = & $$name;
}
// do something
}
Недостатком является то, что количество аргументов ограничено количеством определенных аргументов (6 в примере фрагмента).
но с помощью func_num_args () вы можете определить, нужно ли больше.
Передача в функцию более 7 параметров в любом случае является плохой практикой;)