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 — Récupère le nombre de paramètres
Description
public int ReflectionFunctionAbstract::getNumberOfParameters
( void
)
Récupère le nombre de paramètres défini dans la fonction ; aussi bien les paramètres requis qu'optionnels.
Avertissement
Cette fonction n'est pas documentée et seule la liste des arguments est disponible.
Liste de paramètres
Cette fonction ne contient aucun paramètre.
Valeurs de retour
Le nombre de paramètres.
Voir aussi
- ReflectionFunctionAbstract::getNumberOfRequiredParameters() - Récupère le nombre de paramètres requis
- func_num_args() - Retourne le nombre d'arguments passés à la fonction
Robert Pitt ( LitePHP ) ¶
3 years ago
