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