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: Comparativa, Curioso, Código, HOWTO/CóMO, PHP |


