2017-01-28 2 views
4

J'ai une méthode de type varargs défini en PHP 7tableau Pass pour varargs fonction en php

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

Le problème que je suis en cours d'exécution en est que, parfois, je veux appeler cette méthode quand j'ai déjà un tableau, et je ne peux pas passer directement une variable tableau à cette méthode.

Répondre

6

Utilisez opérateur floc pour déballer les arguments du tableau comme vous avez utilisé dans la fonction:

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

donc comme ceci:

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

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

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

Impressions:

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

Eval pour ça.


Si vous ne l'utilisez pas l'opérateur de floc dans les arguments, vous finirez par like this