将多个参数传递给函数 php

2022-08-30 15:53:34

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

尝试解决:

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


}

答案 1

如果你能掌握 PHP 5.6+,那么变量参数就有了一个新的语法:省略号关键字。
它只是将所有参数转换为数组。

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

文档: ...5.6 菲律宾比索+


答案 2

您在这里有几个选择。

首先是使用可选参数。

  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] **/
 }

推荐