使用数组中的所有元素作为参数调用函数

时间:2016-11-09 02:26:23

标签: php arrays function

我有一个功能

function xyz ($var1, $var2) {
  // do stuff
}

和一个数组

$array = ['foo', 'bar' ...];

现在我想将所有数组元素作为单独的参数传递给函数。

我该如何自动执行此操作?

我当然可以这样做

$rfc = new ReflectionFunction('xyz');
$argCount = $rfc->getNumberOfRequiredParameters();
switch ($argCount) {
  case 1:
    xyz(array[0]);
  break;

  case 2:
    xyz($array[0], $array[1]);
  break;

  ...
}

但是有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

在PHP> = 5.6中,您实际上可以使用variadic arguments (the splat operator),如果它们未在函数中使用,则会忽略其他参数。

// ----
// Sass (v3.4.21)
// Compass (v1.0.3)
// ----

$defaultColor: black;
$gold: gold;

// Block
.btn {
  color: $defaultColor;
  padding: 20px;

  // Element
  &__span{
    font-weight: 600;
  }

  // Modifier
  &--no-padding{
    padding: 0;
  }  
  // Modifier
  &--gold{
    color: $gold;
  }
}