El concepto de Funciones Variables es algo extraño; consiste en que si una variable lleva unos paréntesis al final, PHP buscará y ejecutará alguna función que se llame como el valor almacenado en la variable. Nada más ilustrativo que un ejemplo:
<?PHP var $a = 1; function imprimir ($texto) { echo $texto; } function imprimirNegrita ($texto) { } $variable = "imprimir"; $variable("Hola Mundo"); //Imprime "Hola Mundo" $variable = "imprimirNegrita"; $variable("Hola Mundo"); //Imprime "<strong>Hola Mundo</strong>" ?>
La recursión consiste en que una función se invoque a sí misma. un ejemplo sencillo sería una función que recibe un número, le resta 1 y comprueba si el resultado es menor o igual a 0, si no lo es, se vuelve a llamar a sí misma, y así sucesivamente hasta obtener el resultado buscado:
<?PHP function restar ($num) { $num -= 1; if ($num <= 0) { return $num; } else { restar ($num); } } ?>