将php数组中的每个元素转换为函数的独立参数


Convert each element in php array to separated parameter for function

每个人都试图传递以下数组:

$cars=array("Volvo","BMW","Toyota"); 

到下面的函数

function foo(){
   $numargs = func_num_args();
   $args = func_get_args();
   print_r($args);
}

我想让数组中的每个元素在$args

中被分隔

同时我不想这样写函数和参数

foo($cars[0],$cars[1]);
<?php
for ($i=0; $i<sizeof($array); $i++) {
 $c = $array[$i];
 foo($c);
}
?>

我完全确定你在问什么,但这里有一个简单的解决方案:将foo更改为:

function foo(){
   $args = func_get_args()[0];
}

$args将包含你传递给foo()的元素数组,如果你像这样调用它:

foo($cars);

如果你可能传递的不仅仅是数组参数,你需要循环遍历参数,然后可以对每个参数做一些事情:

foo(){
   $args = func_get_args();
   while(!empty($args))
   {
      //do something with each argument. ie. print out it's value
      print_r(array_shift($args));
   }
}

用同样的方法再次调用:foo($cars);

你想要做的似乎有点奇怪所以我认为你可以把foo方法写成:

foo($array){
    foreach($array as $array_item)
    {
       // do something with each item ie. print out it's value
       print_r($array_item);
    }
}