将多个参数传递给函数php

时间:2013-05-29 20:54:48

标签: php function

为新手问题道歉,但我有一个带两个参数的函数,一个是数组,一个是变量function createList($array, $var) {}。我有另一个函数调用createList只有一个参数,$ var,doSomething($var);它不包含数组的本地副本。我怎样才能将一个参数传递给一个在PHP中需要两个的函数?

尝试解决方案:

function createList (array $args = array()) {
    //how do i define the array without iterating through it?
 $args += $array; 
 $args += $var;


}

3 个答案:

答案 0 :(得分:27)

如果您可以使用PHP 5.6+,那么可以使用变量参数的新语法:省略号关键字。
它只是将所有参数转换为数组。

function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}
echo sum(1, 2, 3, 4);

Doc:... in PHP 5.6+

答案 1 :(得分:8)

你有几个选择。

首先是使用可选参数。

  function myFunction($needThis, $needThisToo, $optional=null) {
    /** do something cool **/
  }

另一种方法是避免命名任何参数(此方法不是首选方法,因为编辑器无法提示任何内容,方法签名中没有文档)。

 function myFunction() {
      $args = func_get_args();

      /** now you can access these as $args[0], $args[1] **/
 }

答案 2 :(得分:4)

您可以在函数声明中指定无参数,然后使用PHP的func_get_argfunc_get_args来获取参数。

function createList() {
   $arg1 = func_get_arg(0);
   //Do some type checking to see which argument it is.
   //check if there is another argument with func_num_args.
   //Do something with the second arg.
}