在我开发一个新的 MVC 应用程序框架时,我使用此方法在调用子方法之前检查需要多少个参数!
示例
<?php
$this->method_args_count = $this->CReflection
->getMethod($Route->getMethod())
->getNumberOfParameters();
//可能为 5,但如果 uri 为 /controller/method/single_param/,我们只有 1
$this->params = $Route->getParams(); //在某些情况下为 0
if($this->method_args_count > count($this->params))
{
$this->difference = ($this->method_args_count - count($this->params));
for($i=0;$i<=$this->difference;$i++)
{
$this->params[] = false;
}
}
//使用正确数量的参数调用方法
//但对于未传递的参数,将其作为 false!
call_user_func_array(array(new $this->obj,$Route->getMethod()),$this->params);
?>