Plantilla:ManuelRomero/PHP/funcionesAnonimas
De WikiEducator
Revisión a fecha de 18:37 5 nov 2024; ManuelRomero (Discusión | contribuciones)
Funciones anónimas
function (){ return "Hola desde una función anónima"; } |
- Para invocar a una función anónima tenemos dos formas
- A través de las variables de funciones
- Como argumento en una función, o sea que el parámetro de una función sea otra función
- Variables de funciones
- Declaro una variable y le asigno una función
- En realidad es una forma diferente de declarar la función e invocarla, tiene la ventaja de gestionar todo como variables (posible comodidad por parte del programador)
- Si uso esta técnica, no puedo invocar a la función antes de su declaración (ya que no existe en contenido de la variable)
- Consiste en declarar una variable y asiganer la función
- Posteriormente podré invocar la función a través de la variable (he de poner también paréntesis en la invocación y no olvidar el ; (punto y coma) en la asignación)
<?php $mi_funcion = function () { return "hola caracola"; }; d echo $mi_funcion(); //imprimiría "hola caracola" //===================================== echo $mi_funcion(); $mi_funcion = function () { return "hola caracola"; }; //Este código fallaría, //===================================== <?php echo mi_funcion(); function mi_funcion () { return "hola caracola"; }; //Este código funcionaría, php legunaje de doble pasada en su interpretación, ?>
- Invocación usando la función como un parámetro en otra función
- Esto se puede conseguir ver, usando alguna función del sistema que espere recibir una función de clausura, como iremos viendo a lo largo del curso.
spl_autoload_register(https://www.php.net/manual/es/function.spl-autoload-register.php) array_walk (https://www.php.net/manual/es/function.array-walk.php) array_map (https://www.php.net/manual/es/function.array-map.php) array_reduce (https://www.php.net/manual/es/function.array-reduce.php)
- Otra forma de utilizarlo, es usando la función call_user_func, con esta función invocamos a una función anónima, necesitamos acceder a ello, y lo podemos hacer a través de un identificador, o escribiendo el código de la funćión anónima
<?php call_user_func(function ($nombre){echo "hola $nombre";}, "Manuel"); //Este código nos escribirá "hola Manuel"; ?>
- Podríamos implementar el código anterior usando variables, posiblemente se puede considerar que mejoraríamos en legibilidad
<?php $saludar = function ($nombre){ echo "hola $nombre"; }; call_user_func($saludar, "Manuel"); ?>