Working on a new MVC Application Framework i use this method to check how many arguments are required before calling the sub method!
Example
<?php
$this->method_args_count = $this->CReflection
->getMethod($Route->getMethod())
->getNumberOfParameters();
//Maybe be 5 but if uri is /controller/method/single_param/ we only of 1
$this->params = $Route->getParams(); //0 in some cases
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;
}
}
//Call the method with correct amount of params
// but as false for params that have not been passed!
call_user_func_array(array(new $this->obj,$Route->getMethod()),$this->params);
?>
ReflectionFunctionAbstract::getNumberOfParameters
(PHP 5 >= 5.0.3)
ReflectionFunctionAbstract::getNumberOfParameters — Gets number of parameters
Descripción
public int ReflectionFunctionAbstract::getNumberOfParameters
( void
)
Get the number of parameters that a function defines, both optional and required.
Warning
Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.
Parámetros
Esta función no tiene parámetros.
Valores devueltos
The number of parameters.
Ver también
- ReflectionFunctionAbstract::getNumberOfRequiredParameters() - Gets number of required parameters
Robert Pitt ( LitePHP )
11-Apr-2010 10:42
