如何动态调用PHP方法并传递不在数组中的多个变量?

如何动态调用PHP方法并传递不在数组中的多个变量?,php,arrays,reflection,Php,Arrays,Reflection,我希望能够调用php函数,但前提是输入的元素数与函数接受的元素数匹配,如果匹配,我希望以1乘以1的方式传递它们,而不是以数组的形式传递 目前,我有下面的代码来完成这项工作,但是很混乱 call_user_func($functionname, $vars); 当我有一个函数需要4个元素的数组,但只传递了3个元素时,这就遇到了问题。必须检查并确保所有变量都存在,这使得编写函数有点混乱。我有一个更好的基于思考的解决方案,但我还差最后一步。如果参数数量与函数中的参数数量匹配,我可以调用该方法,但我不

我希望能够调用php函数,但前提是输入的元素数与函数接受的元素数匹配,如果匹配,我希望以1乘以1的方式传递它们,而不是以数组的形式传递

目前,我有下面的代码来完成这项工作,但是很混乱

call_user_func($functionname, $vars);
当我有一个函数需要4个元素的数组,但只传递了3个元素时,这就遇到了问题。必须检查并确保所有变量都存在,这使得编写函数有点混乱。我有一个更好的基于思考的解决方案,但我还差最后一步。如果参数数量与函数中的参数数量匹配,我可以调用该方法,但我不知道如何正确调用该方法。我有一个变量数组。我需要将这些信息传递到函数中,以便执行以下操作

function foo($var1, $var2, $var3)
{
    //I know all 3 vars exist and dont need to verify first
}
if(count($arrayof3elements) == get_method_var_count("foo") {
    dynamically_call_method("foo", $arrayof3elements);
}

使用
call\u user\u func\u array
,而不是使用
call\u user\u func\u array
——这允许您传递参数数组,但将它们作为单独的对象传递给方法

function x($foo, $bar) {
    echo $foo . $bar;
}

call_user_func_array('x', ['abc', 'def']); // prints abcdef

使用
call\u user\u func\u array
,而不是使用
call\u user\u func\u array
——这允许您传递参数数组,但将它们作为单独的对象传递给方法

function x($foo, $bar) {
    echo $foo . $bar;
}

call_user_func_array('x', ['abc', 'def']); // prints abcdef
接受数组作为第二个参数,但将其作为单独的参数传递给函数(如需要)。接受数组作为第二个参数,但将其作为单独的参数传递给函数(如需要)。