以动态方式为函数提供参数
Give arguments to function in a dynamic way
我目前正在寻找一种动态地为函数提供参数的方法。
一些代码解释:
//Class: ClassXY
PUBLIC function function1($arg1, $arg2, $arg3);
PUBLIC function function2($arg1);
我目前这样称呼它:
// $method = 'function1' or 'function2'
echo ClassXY :: {$method}($parameter_string);
我的问题是,parameter_string
要么是一个包含参数的简单字符串,要么是一个数组,其中包含我想提供给函数的所有参数。例如:
$parameter_string: array(3) {[0] => 'arg1', [1] => 'arg2', [2] => 'arg3' }
到目前为止一切顺利。我的问题是,该调用仅适用于 ClassXY :: function2()
因为它只需要一个参数。如果我调用 ClassXY :: function2()
它不会工作,因为它需要三个参数但只给出一个参数(具有三个元素的数组,应该是三个参数)。我需要一种方法让 php 意识到数组的每个元素都应该是一个参数。有什么想法吗?
提前致谢!
看起来 call_user_func_array
是你需要的。
我目前正在寻找一种动态地为函数提供参数的方法。 一些代码解释:
//Class: ClassXY
PUBLIC function function1($arg1, $arg2, $arg3);
PUBLIC function function2($arg1);
我目前这样称呼它:
// $method = 'function1' or 'function2'
echo ClassXY :: {$method}($parameter_string);
我的问题是,parameter_string
要么是一个包含参数的简单字符串,要么是一个数组,其中包含我想提供给函数的所有参数。例如:
$parameter_string: array(3) {[0] => 'arg1', [1] => 'arg2', [2] => 'arg3' }
到目前为止一切顺利。我的问题是,该调用仅适用于 ClassXY :: function2()
因为它只需要一个参数。如果我调用 ClassXY :: function2()
它不会工作,因为它需要三个参数但只给出一个参数(具有三个元素的数组,应该是三个参数)。我需要一种方法让 php 意识到数组的每个元素都应该是一个参数。有什么想法吗?
提前致谢!
看起来 call_user_func_array
是你需要的。