1
call_user_func_array()
's PHP manual's examples只能让我更容易混淆foo
和bar
变量!在codeigniter的_remap方法中使用call_user_func_array()
无论如何,请考虑_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
? - 这是一个在codeigniter的
_remap()
函数中使用的可靠方法吗?
你试过了吗?你为什么要像这样实例化控制器? – 2012-02-18 13:20:34
其实我一直在寻找一个通用的方法。这不是我使用我的控制器的方式。在我的控制器中还有许多其他方法。我应该使用'_remap'函数,因为'search()'方法应该有许多可选参数以用户定义的顺序传递。 – 2012-02-18 17:16:16