Formas de ejecutar funciones en PHP
Escrito por Alex Barros Aúnque a algunos les parezca extraño, existen tres formas distintas de ejecutar una función en PHP (por lo menos que yo conozca). Cada una puede venir bien en situaciones distintas.
Lo primero de todo, crearemos un par de funciones.
-
function menor($a,$b){ return $a<$b ? $a : $b; }
-
function mayor($a,$b){ return $a>$b ? $a : $b; }
La función menor() devuelve el menor de los dos números pasados como parámetros. La función mayor() hará lo contrario.
La forma clásica
La forma más típica de ejecutar una función, es símplemente escribiendo su nombre, seguido de unos paréntesis, con los parámetros separados por comas. De esta forma, al escribir:
-
$a = 12;
-
$b = 5;
-
Nos devolvería el siguiente texto:
Entre 12 y 5, el menor es 5
Con la función call_user_func(_array)
Las función call_user_func nos permite ejecutar una función, dado el nombre en cadena alfanumérica.
La diferencia con call_user_fucn_array, es que en esta última los parámetros son pasados en un array.
-
if($_GET[‘comparacion’] == ‘menor’) $func = ‘menor’;
-
else $func = ‘mayor’;
-
-
$a = 17;
-
$b = 32;
-
Dependiendo de la variable GET comparación, se ejecutará una función u otra. La alternativa con call_user_func_array es:
-
if($_GET[‘comparacion’] == ‘menor’) $func = ‘menor’;
-
else $func = ‘mayor’;
-
-
$a = 17;
-
$b = 32;
-
Directamente de una cadena
Esta es una forma sorprendente de ejecutar funciones. Parte de lo mismo que la anterior, el nombre de la función en una variable alfanumérica. Pero en este caso puede ser tratada directamente como función, así por la cara.
Esta libertad recuerda a JavaScript, donde pueden igualarse variables a funciones de forma muy sencilla.
Conocéis alguna forma más? Os parece útil disponer de diferentes métodos para llamar a funciones?
Categorias: Código, Comparativa, Curioso, HOWTO/CóMO, PHP |



Respeta el copyleft
julio
22:27 Xbalanqué Ha dicho:
Excelente aporte, me ha sido de muchísima utilidad.
noviembre
18:36 programdor_fox Ha dicho:
Me parece excelente esta función, yo vengo de Visual Fox y necesitaba algo como esto para algo que estoy haciendo en php.
julio
21:43 dulcineamr Ha dicho:
Excelente post!..
Alguien sabe como podria ejecutarse esta funcion que esta dentro de la cadena de caracteres?
echo “Voy a llamar a una funcion, menor(2,5)”;
Es una idea retorcida que se me ha ocurrido, ya que si es posible ejecutar variables dentro de cadenas de caracteres. Ejemplo:
$funcion=”nombrePagina”;
echo “Voy a llamar a una funcion $funcion”;
Devuelve: Voy a llamar a una funcion nombrePagina
Un saludo, y felicitaciones por tu aportacion!.
octubre
16:15 Nod Ha dicho:
Es excelente, me encanta el poder que te da PHP!