web-dev-qa-db-ja.com

配列をphpの可変引数関数に渡す

PHP 7で定義された可変引数型メソッドがあります

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

私が遭遇している問題は、すでに配列があるときにこのメソッドを呼び出したいことがあり、配列変数をこのメソッドに直接渡すことができないことです。

15
Gargoyle

関数で使用したのと同じように、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演算子を使用しない場合、最終的には このように

20
Thamilan