0

简而言之,我有如下功能:

function plus($x, $y){
   echo $x+$y;
}

我想告诉函数它的参数作为数组,如下所示:

$parms = array(20,10);
plus($parms);

但不幸的是,不起作用。我厌倦了使用以下另一种方式:

$parms = array(20,10);
$func_params = implode(',', $parms);
plus($func_params);

而且也不起作用,并给我错误消息: Warning: Missing argument 2 for plus(), called in.....

而现在,我很困惑。我能做什么工作?

4

4 回答 4

1

您可以做几件事。首先,要维护您的函数定义,您可以使用call_user_func_array()。我认为这很丑陋。

call_user_func_array('plus', $parms);

您可以通过采用可变数量的参数来使您的函数更加健壮:

function plus(){
  $args = func_get_args();
  return $args[0] + $args[1];
}

您可以简单地接受一个数组并将所有内容相加:

function plus($args){
  return $args[0] + $args[1];
}

或者您可以总结所有论点:

function plus($args){
  return array_sum($args);
}

这是 PHP,有 10 种方法可以做任何事情。

于 2012-09-19T00:42:27.473 回答
0

您需要调整您的函数,使其仅接受一个参数,然后在函数本身中处理该参数:

非常简单的例子:

function plus($arr){
   echo $arr[0]+$arr[1];
}

$parms = array(20,10);
plus($parms);

您可以轻松地将其调整为遍历所有元素,检查输入等。

于 2012-09-19T00:39:42.810 回答
0

嘿?错误信息非常明确:您在函数中要求两个参数,但您只提供一个。

如果要传递一个数组,它将是一个变量。

function plus($array){
    echo ($array[0]+$array[1]);
}
$test = array(1,5);
plus($test); //echoes 6
于 2012-09-19T00:40:40.157 回答
0

用这个:

function plus($arr){
   $c = $arr[0]+$arr[1];
   echo $c;
}

您可以调用:

$parms = array(20,10);
plus($parms);
于 2012-09-19T00:40:44.657 回答