php 如何将数组转换为方法的参数?[副本]

jdgnovmf  于 2023-05-05  发布在  PHP
关注(0)|答案(3)|浏览(137)

此问题已在此处有答案

Passing an Array as Arguments, not an Array, in PHP(4个答案)
19小时前关闭
我需要传递params(例如:'param1', 'param2', 'param3')到方法…但我有一个参数数组(例如:array('param1', 'param2', 'param3'))。如何将数组转换为参数?

function foo(array $params) {

    bar(
        // Here should be inserted params not array.
    );

}
j2datikz

j2datikz1#

使用函数call_user_func_array
例如:

call_user_func_array('bar', $params);
fwzugrvs

fwzugrvs2#

如果您知道参数名,则可以使用以下命令

$params = array(
    'param1' => 'value 1',
    'param2' => 'value 2',
    'param3' => 'value 3',
);

function foo(array $someParams) {
    extract($someParams);  // this will create variables based on the keys

    bar($param1,$param2,$param3);
}

我不确定这是不是你想要的。

mdfafbf1

mdfafbf13#

你可以像这样把一个转换成另一个:

function foo(array $params)
{
    bar(...$params);
}

或者直接去酒吧:

bar(...$array);

要让“bar”函数接收几个参数,可以用途:

function bar(...$params)
{
    //$params is a array of parameters
}

function bar($p1, $p2, $p3)
{
    //$pn is a variables
}

function bar($p1, ...$pn)
{
    //$p1 is a variable
    //$pn is a array of parameters
}

但是要注意参数的类型和数量,不要给你带来问题。
访问:Function Arguments

相关问题