问题可能令人困惑。。。
php array_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 */)
return call_user_func_array('array_merge', $args);
您可能会使用call_user_func
(http://php.net/manual/en/function.call-user-func.php)作为:
return call_user_func("array_merge", $args);