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
Beschreibung
public int ReflectionFunctionAbstract::getNumberOfParameters
( void
)
Get the number of parameters that a function defines, both optional and required.
Warnung
Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.
Parameter-Liste
Diese Funktion hat keine Parameter.
Rückgabewerte
The number of parameters.
Siehe auch
- ReflectionFunctionAbstract::getNumberOfRequiredParameters() - Gets number of required parameters
- func_num_args() - Liefert die Anzahl der an eine Funktion übergebenen Argumente
Robert Pitt ( LitePHP )
11-Apr-2010 03:42
