У меня есть функция PHP, которая принимает переменное количество аргументов.Как передать функцию PHP, ожидающую varargs строку?
function foo() {
$numargs = func_num_args();
if ($numargs < 3) {
die("expected number of args is 3, not " . $numargs);
}
...
Если я называю это так:
foo(1, 12, 17, 3, 5);
это нормально, но если я называю это так:
$str = "1, 12, 17, 3, 5";
foo($str);
это терпит неудачу, потому что говорит, что я лишь вскользь один аргумент , Какое изменение мне нужно сделать, если я бы предпочел не изменять сама функцию, а только соглашение о вызове.
- обновление: для сохранения разрыва вызова я просто построил массив. И поскольку функция была функцией-членом, соглашение о вызове было немного иным. Таким образом, код закончился
$list = array();
$list[] = 1;
$list[] = 12;
$list[] = 17;
// etc.
call_user_func_array(array($this, 'foo'), $list);
Думал, что это может быть полезно кому-то еще.
+1 для обновления. Да, передача строк дала мне проблемы, поэтому я использовал массив, чтобы убедиться, что он будет иметь тип int, как указано в моем уточнении вопроса выше. –