Как передать переменное количество аргументов функции PHP

Часто пропускаемым фактором в этих дебатах является дополнительное время, которое требуется для программиста, чтобы переместиться, понять и изменить меньше кода readible. Рассмотрение времени программиста идет за сто долларов в час или больше, это - очень реальная стоимость.
Любому увеличению производительности противостоят эти прямые дополнительные расходы в разработке.

111
задан nohat 14 September 2009 в 16:37
поделиться

2 ответа

Если у вас есть аргументы в массиве, вас может заинтересовать функция call_user_func_array .

Если количество аргументов, которые вы хотите передать, зависит от длины массива, это, вероятно, означает, что вы можете сами упаковать их в массив - и использовать его для второго параметра call_user_func_array .

Элементы переданного вами массива затем будут приняты вашей функцией как отдельные параметры.


Например, если у вас есть эта функция:

function test() {
  var_dump(func_num_args());
  var_dump(func_get_args());
}

Вы можете упаковать свои параметры в массив, например:

$params = array(
  10,
  'glop',
  'test',
);

И затем вызвать функцию:

call_user_func_array('test', $params);

Этот код выведет:

int 3

array
  0 => int 10
  1 => string 'glop' (length=4)
  2 => string 'test' (length=4)

т.е. 3 параметра; точно так же, как функция iof была вызвана следующим образом:

test(10, 'glop', 'test');
127
ответ дан 24 November 2019 в 02:59
поделиться

Вы можете просто назвать это.

function test(){        
     print_r(func_get_args());
}

test("blah");
test("blah","blah");

Вывод:

Массив ([0] => бла) Массив ([0] => бла [1] => бла)

4
ответ дан 24 November 2019 в 02:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: