在PHP中调用call_user_func_array

时间:2016-05-30 07:02:09

标签: php arrays

我需要使用call_user_func_array,但我的数组太大,从文档中我只需要在参数列表中使用数组值。有没有办法使用相同的数组作为回调函数的参数。

mixed call_user_func_array ( callable $callback , array $param_arr )

我的代码:

echo call_user_func_array("myFirstFunction" , array("1" , "2" , "3")); 

function myFirstFunction($arg1, $arg2, $arg3){
    return $arg1 . $arg2 . $arg3;
}

我的问题是,如果我的数组具有50或更多值,而不是如何使用此函数?

2 个答案:

答案 0 :(得分:1)

使用func_get_args

    Map<String,String> configMap = new HashMap<String,String>();
    configMap.put("mode", "sandbox");
    IPNMessage ipnlistener = new IPNMessage(request,configMap);

    boolean isIpnVerified = ipnlistener.validate();
    String transactionType = ipnlistener.getTransactionType();
    Map<String,String> map = ipnlistener.getIpnMap();

结果:

echo call_user_func_array("myFirstFunction" , array("1" , "2" , "3")); 

function myFirstFunction(){
    $arguments = func_get_args(); //Now, $arguments is an array, you can process further
    return implode("", $arguments);
}

Demo

答案 1 :(得分:0)

您还可以使用array_reduce

<?php

echo array_reduce(['1', '2', '3'], "myFirstFunction");

function myFirstFunction($prev, $arg){
    return $prev . $arg;
}