php 7 — передать массив функции varargs в переполнении стека

У меня есть метод типа varargs, определенный в PHP 7

function selectAll(string $sql, ...$params) { }

Проблема, с которой я сталкиваюсь, заключается в том, что иногда я хочу вызвать этот метод, когда у меня уже есть массив, и я не могу просто напрямую передать переменную массива этому методу.

8

Решение

Используйте оператор splat для распаковки аргументов массива, как вы использовали в функции:

selectAll($str, ...$arr);

Ну вот так:

function selectAll(string $sql, ...$params) {
print_r(func_get_args());
}

$str = "This is a string";
$arr = ["First Element", "Second Element", 3];

selectAll($str, ...$arr);

Печать:

Array
(
[0] => This is a string
[1] => First Element
[2] => Second Element
[3] => 3
)

Eval за это.


Если вы не используете оператор splat в аргументах, вы в конечном итоге как это

12

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]