2011-10-14 31 views
6

Ésta es una cuestión de extensión de PHP pass in $this to function outside classPHP: Obtener número de parámetros de una función requiere

Y creo que esto es lo que estoy buscando, pero es en python no php: Programmatically determining amount of parameters a function requires - Python

Digamos que tengo una función como esta:

function client_func($cls, $arg){ } 

y cuando estoy listo para llamar a esta función que podría hacer algo como esto en pseudo código:

if function's first parameter equals '$cls', then call client_func(instanceof class, $arg) 
else call client_func($arg) 

Entonces, básicamente, ¿hay alguna manera de buscar una función y ver qué valores de parámetros se requieren antes de llamar a la función?

Supongo que esto sería como debug_backtrace, pero al revés.

func_get_args() solo se puede llamar desde una función que no me ayuda aquí.

¿Alguna idea?

Respuesta

15

Utilice Reflection, especialmente ReflectionFunction en su caso.

$fct = new ReflectionFunction('client_func'); 
echo $fct->getNumberOfRequiredParameters(); 

Por lo que se ve se encuentra getParameters() útil también

+2

pensaron en todo! –

+0

Muchas gracias, muy útil cuando intento escribir algunos conceptos funcionales. – Perspective

Cuestiones relacionadas