Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php:使用参数数组动态调用可重载函数_Php_Arrays_Merge - Fatal编程技术网

php:使用参数数组动态调用可重载函数

php:使用参数数组动态调用可重载函数,php,arrays,merge,Php,Arrays,Merge,这个问题可能令人困惑 phparray\u merge()函数接受无限量的参数,例如 array_merge($array1, $array2, $array3, $array4, $array5, $array6, $array7); 但是如果我想从函数中调用它呢 我有一个可以重载的merge()函数,我想在连接它们之前对数组做一些事情 那么,当数组中有数组参数时,如何调用array_merge呢 范例 public function index() { $head = $this

这个问题可能令人困惑

php
array\u merge()
函数接受无限量的参数,例如

array_merge($array1, $array2, $array3, $array4, $array5, $array6, $array7);
但是如果我想从函数中调用它呢

我有一个可以重载的
merge()
函数,我想在连接它们之前对数组做一些事情

那么,当数组中有数组参数时,如何调用array_merge呢

范例

public function index() {

    $head = $this->_model->title("Index Page"); // returns array

    $nav = $this->_model->navigation(); // returns array

    $default = $this->_model->default_page(); // returns array

    $data = $this->merge($head, $nav, $default); // merge all arrays

    $this->loadView( 'view_admin', $data );
}

private function merge(){
    $args = func_get_args();

    // ... do stuff the the arrays ...

    return array_merge($args[0],$args[1],$args[2]);
}
如您所见,当前在我的合并函数中:

return array_merge($args[0],$args[1],$args[2]);
这是硬编码的

如何动态调用array_merge()函数

也许像

array_merge(/* All Array args passed in */) 

您可能可以使用
call\u user\u func
(http://php.net/manual/en/function.call-user-func.php) 作为:


您可能可以使用
call\u user\u func
(http://php.net/manual/en/function.call-user-func.php) 作为:

return call_user_func_array('array_merge', $args);
return call_user_func("array_merge", $args);