передача нескольких параметров в функцию в PHP
извиняюсь за вопрос новичка, но у меня есть функция, которая принимает два параметра одного массива-переменная function createList($array, $var) {}
. У меня есть другая функция, которая вызывает createList только с одним параметром, $var,doSomething($var);
он не содержит локальной копии массива. Как я могу передать параметр в функцию, которая ожидает два в PHP?
попытка решения :
function createList (array $args = array()) {
//how do i define the array without iterating through it?
$args += $array;
$args += $var;
}
3 ответов
у вас есть несколько вариантов здесь.
во-первых, использовать дополнительные параметры.
function myFunction($needThis, $needThisToo, $optional=null) {
/** do something cool **/
}
другой способ-просто избежать именования каких-либо параметров (этот метод не является предпочтительным, потому что редакторы не могут намекать ни на что, и в сигнатуре метода нет документации).
function myFunction() {
$args = func_get_args();
/** now you can access these as $args[0], $args[1] **/
}
Если вы можете получить доступ к PHP 5.6+, есть новый синтаксис для переменных аргументов: ключевое слово с многоточием.
Он просто преобразует все аргументы в массив.
function sum(...$numbers) {
$acc = 0;
foreach ($numbers as $n) {
$acc += $n;
}
return $acc;
}
echo sum(1, 2, 3, 4);
Doc:... в PHP 5.6+
вы можете не указывать параметры в объявлении функции, а затем использовать PHP func_get_arg или func_get_args чтобы получить аргументы.
function createList() {
$arg1 = func_get_arg(0);
//Do some type checking to see which argument it is.
//check if there is another argument with func_num_args.
//Do something with the second arg.
}