Funciones variables
Parte de la sección Lógica y Flujo del Journey de PHP de Coddy. Lección 6 de 68.
Las funciones variables ofrecen otra forma de llamar a funciones dinámicamente en PHP. En lugar de usar call_user_func(), puedes llamar directamente a una función tratando una variable que contiene el nombre de la función como si fuera la función misma.
La sintaxis es sencilla: si tienes una variable que contiene el nombre de una función, puedes llamar a esa función añadiendo paréntesis a la variable:
<?php
function sayHello() {
echo "Hello World!";
}
$functionName = "sayHello";
$functionName(); // Salida: Hello World!
?>Esto también funciona con funciones que aceptan parámetros. Simplemente pasas los argumentos dentro de los paréntesis:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
$func = "greet";
$func("Alice"); // Imprime: Hello, Alice!
?>Las funciones variables ofrecen una forma clara e intuitiva de ejecutar código dinámicamente. Esta característica es especialmente útil cuando necesitas llamar a distintas funciones según las condiciones o la entrada del usuario, lo que hace que tu código sea más flexible y adaptable.
Desafío
FácilCrea tres funciones: calculateArea, que recibe dos números (la longitud y el ancho) y devuelve su producto; calculatePerimeter, que recibe dos números y devuelve el doble de su suma; y calculateDiagonal, que recibe dos números y devuelve la raíz cuadrada de la suma de sus cuadrados.
Recibirás tres entradas: el nombre de la operación ("area", "perimeter" o "diagonal"), la longitud y el ancho. Lee las tres entradas, almacena el nombre de la función en una variable y llama a esa función usando la sintaxis de funciones variables con las dos medidas. Guarda lo que devuelve en $result: la línea debajo de tu código lo imprime.
Formato de entrada: Tres líneas: la primera contiene el nombre de la operación, la segunda contiene la longitud (un número que puede tener decimales) y la tercera contiene el ancho (un número que puede tener decimales).
Salida esperada: El resultado del cálculo
Pruébalo tú mismo
<?php
// Lee los datos de entrada
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));
// TODO: Crea aquí las tres funciones (calculateArea, calculatePerimeter, calculateDiagonal)
// TODO: Llama a la función adecuada usando la sintaxis de funciones variables y guarda el resultado en $result
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Funciones avanzadas
Funciones anónimasClosures y 'use'Funciones de flechaFunciones callbackUso de 'call_user_func'Funciones variablesPaso por referenciaFunciones recursivasResumen: Miscelánea de funciones4Arreglos multidimensionales
Crear un arreglo 2DAcceder a elementos de un arreglo 2DModificar elementos de un arreglo 2DIterar con bucles anidadosArreglos asociativos 2DResumen: Ejercicio de cuadrícula simple2Manipulación avanzada de arrays
Agregar con 'array_push'Eliminar con 'array_pop'Agregar con 'array_unshift'Eliminar con 'array_shift'Fusionar arrays indexadosFusionar arrays asociativosExtraer con 'array_slice'Valores con 'in_array'Claves con 'array_search'Resumen: Ejercicio de Playlist3Ordenar Arrays
Ordenar arrays indexados de forma ascendenteOrdenar arrays indexados de forma descendenteOrdenar arrays asociativos por valorOrdenar arrays asociativos por claveOrdenación por orden naturalOrdenación personalizada con 'usort'Resumen: Ordenar tablas de clasificaciónPractica por tu cuenta: Compilador de PHP online