在开发新的 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);
?>