У меня есть метод типа varargs, определенный в PHP 7
function selectAll(string $sql, ...$params) { }
Проблема, с которой я сталкиваюсь, заключается в том, что иногда я хочу вызвать этот метод, когда у меня уже есть массив, и я не могу просто напрямую передать переменную массива этому методу.
Используйте оператор 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 в аргументах, вы в конечном итоге как это
Других решений пока нет …