Ahora que ya conoces el uso de bucles (hay dos artículos dedicados a estos “while“, “for“) y entiendes el concepto de “función“, vamos a ver otra técnica de generar bucles llamada recursión.

Por lo general es mas complicado realizar tareas con* funciones recursivas* que hacerlas con bucles for o while, pero puede darse el caso en el que sea necesario usar recursión.

Una función recursiva no es mas que una función que se llama a si misma generando un bucle, claro que esto provoca que la función se llame infinitas veces si no ponemos algún condicional que permita salir del bucle. Como siempre es mas fácil verlo con un ejemplo:

”; $contador++; //Como aun no ha llegado al limite llamamos nuevamente a la función miRecursion($contador, $limite); }else{ echo “Se ha terminado la recursión”; } } //Invocamos la función pasándole 1 como $contador y 10 como $limite. miRecursion(1, 10); ?>

No es complicado generar Funciones Recursivas y sirven para resolver cualquier tipo de problemas que requiera de un bucle, teóricamente cualquier función recursiva puede traducirse a un bucle iterativo y viceversa.

Por ejemplo el ejemplo anterior lo podríamos representar con un bucle for de esta forma:

”; } echo “Se ha terminado la recursión”; ?>

Si una misma solución se puede representar de las dos formas,* ¿Cuando debemos usar iteración y cuando la recursión?: *No tengo ni idea.

La decisión, al menos en* PHP* creo que depende de cada programador, de que le resulta mas cómodo, personalmente prefiero la iteración, ya que al estar fuera del contexto de la función me parece que debe ser mas rápido.

De momento lo dejo aquí para que no resulte muy pesado, y en el próximo articulo trataré el tema de los* Closures en PHP.*