Php 如何将数组传递给使用func_get_参数检索参数的函数

Php 如何将数组传递给使用func_get_参数检索参数的函数,php,Php,我正在编程一个API方法,它接受可变数量的参数。API方法(见下文)使用func_get_参数。我正在包装API,希望能够传递关联数组,而不是将数组的键/值作为参数传递;i、 e.过滤器(键1、值1、键2、值2… 我可以访问API的源代码,但很遗憾,我无法更改源代码。 我已经看过了,我相信它应该/将作为一组参数传递数组(尽管不是关联数组)filter是一个对象的方法-我不知道如何将方法作为回调传递。我也不知道是否有一个干净的方式来包装这个API。非常感谢您的帮助 <?php public

我正在编程一个API方法,它接受可变数量的参数。API方法(见下文)使用func_get_参数。我正在包装API,希望能够传递关联数组,而不是将数组的键/值作为参数传递;i、 e.
过滤器(键1、值1、键2、值2…

我可以访问API的源代码,但很遗憾,我无法更改源代码。
我已经看过了,我相信它应该/将作为一组参数传递数组(尽管不是关联数组)
filter
是一个对象的方法-我不知道如何将方法作为回调传递。我也不知道是否有一个干净的方式来包装这个API。非常感谢您的帮助

<?php

public function &filter() {
        $filter = new QueryFilter($this->queryhandler, $this);
        $args = func_get_args();
        $filter->applyFilter($this->getFilters($args));
        return $filter;
    }

您可以使用一个包装器,它接受一个数组并“展平”键和值:

function wrapper(array $params) {
    $flat = array();
    foreach ($params as $k => $v) {
        $flat[] = $k;
        $flat[] = $v;
    }

    return call_user_func_array('filter', $flat);
}

以上假设
filter
是一个免费函数,但在您的情况下不是这样。要将方法指定为回调,请使用语法
array($object,'filter')
call\u user\u func\u array
$object

上调用方法
filter
key1
key2
等的处理方法
func\u get\u args
提供了一个数字索引数组,其中的键是预先确定的。现在它有了意义。添加了一个答案。
filter
函数接受数据库字段名和字段值。这就是为什么我更喜欢使用关联数组。需要对关联数组进行操作,以便键和值位于非关联数组中,例如,我可以使用数组('key1'=>'value1','key2'=>'value2')和make数组('key1','value1','key2','value2'),但我不确定如何将该方法作为回调函数传递。我不确定call_user_func_array是否是正确的方法。谢谢-我有机会测试后会投票。