我有一个PHP函数,该函数需要可变数量的参数(使用func_num_args()和func_get_args()),但是我要传递给该函数的参数数量取决于数组的长度。有没有一种方法可以使用可变数量的参数来 调用 PHP函数?
func_num_args()
func_get_args()
如果参数在数组中,则该call_user_func_array函数可能会对您有兴趣。
call_user_func_array
如果您要传递的参数数量取决于数组的长度,则可能意味着您可以将它们自己打包到数组中-并将其用于第二个参数call_user_func_array。
然后,您传递给该数组的元素将作为不同的参数被函数接收。
例如,如果您具有以下功能:
function test() { var_dump(func_num_args()); var_dump(func_get_args()); }
您可以将参数打包到一个数组中,如下所示:
$params = array( 10, 'glop', 'test', );
然后,调用函数:
call_user_func_array('test', $params);
此代码将输出:
int 3 array 0 => int 10 1 => string 'glop' (length=4) 2 => string 'test' (length=4)
即3个参数;完全类似于iof函数的调用方式:
test(10, 'glop', 'test');