call_user_func_array()
's PHP manual's examples只能让我对那些foo
和bar
变量更加困惑!
无论如何,请考虑下面的_remap
和ComplexFunction
:
class MyClass extends CI_Controller
{
public function _remap($method, $params = array())
{
if (method_exists($this, $method))
{
return call_user_func_array(array($this, $method), $params);
}
}
public function ComplexFunction($param1, $param2, $param3, $param4)
{
// process
return 'done';
}
}
现在这段代码能正常工作吗?
$params = array(
'param1' => '1',
'param2' => '2',
'param3' => '3',
'param4' => '4'
);
$myObject = new MyClass();
$output = call_user_func_array(array($myObject, 'ComplexFunction'), $params);
echo $output;
$output
是done
吗?_remap()
函数中使用的可靠方法吗?答案 0 :(得分:2)
这不起作用,因为_remap()
函数由CI的核心函数调用,并且它为匹配的路由中的每个段传递一个单独的参数。您永远不必自己调用_remap()
方法!