Inicio > php, Programming > Funciones dinámicas en PHP

Funciones dinámicas en PHP

Miércoles, 26 de enero de 2011 Dejar un comentario Ir a comentarios

Hola amigos! Qué tal? Mucho frio eh! Yo regular, afónico perdido… bueno, al lio que se me van las cabras y no es plan de aburriros :P

De qué voy a hablar hoy.. veamos, a sí! Funciones dinámicas en PHP. Es un concepto bastante sencillo, y que seguro que ya conocéis, pero como ya pasó con las constantes mágicas, creo que merece la pena hacerles una mención en este nuestro rincón elePHPantil ;)

Bueno, vamos a lo que vamos. Las funciones dinámicas en PHP no son más que meter el nombre de una función dentro de una variable de modo que llamemos a dicha función a través de la variable creada. Veamos un ejemplo:

  1.  
  2. function printHola ()
  3. {
  4.       return "Hola desde dentro de la función";
  5. }
  6.  
  7. $var = "printHola";
  8. echo $var();

Como podemos ver es un código muy sencillo, con el cual obtendremos la siguiente salida por pantalla:

  1.  
  2. Hola desde dentro de la función

Sencillo, ¿verdad? ¿Y qué aplicaciones pueden tener las funciones dinámicas? Pues imaginaos que tenéis una función que es llamada en varios casos y que todos los casos son iguales excepto que difieren en un trozo bien definido. No estaría genial poder llamar a siempre a la misma función y que dependiendo de un parámetro ejecutara un código u otro? Sí, ya sé que se puede hacer con un switch, o con un simple if, pero el código queda mucho más compacto si como parámetro pasamos el nombre de la función a la que vamos a llamar y luego simplemente invocamos a dicha función a través de la correspondiente variable.

  1.  
  2. function funcion1() { return "dentro de función 1"; }
  3.  
  4. function funcion2() { return "dentro de función 2"; }
  5.  
  6. function funcion3() { return "dentro de función 3"; }
  7.  
  8. function FunciondeFunciones($functionName)
  9. {
  10.       echo "Antes de la llamada";
  11.       echo $functionName();
  12.       echo "Despues de la llamada";
  13. }
  14.  
  15. $array = array("funcion1","funcion2","funcion3");
  16.  
  17. foreach ($array as $oneFunctionName)
  18. {
  19.       echo FunciondeFunciones($oneFunctionName);
  20. }

Pues eso es todo, un par de simples ejemplos. El resto, con un poco de imaginación, seguro que encontráis aplicaciones muy interesante y donde os podréis tanto ahorrar código como simplificarlo. Espero que os sirva de ayuda.

Un saludo y muchas gracias por vuestra atención ;)

Features Stats Integration Plugin developed by YD