Funciones variables
Parte de la sección Lógica y Flujo del Journey de PHP de Coddy. Lección 6 de 68.
Las funciones de variable ofrecen otra forma de llamar a functions 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 propia función.
La sintaxis es sencilla: si tienes una variable que contiene un nombre de 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 limpia e intuitiva de ejecutar código dinámicamente. Esta característica resulta especialmente útil cuando necesitas llamar a diferentes 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 (longitud y anchura) 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 la anchura. Lee las tres entradas, almacena el nombre de la función en una variable, llama a esa función usando la sintaxis de función mediante variable con las dos medidas e imprime el resultado.
Formato de entrada: Tres líneas: la primera línea contiene el nombre de la operación, la segunda línea contiene la longitud (un número que puede contener decimales) y la tercera línea contiene la anchura (un número que puede contener decimales).
Salida esperada: El resultado del cálculo
Pruébalo tú mismo
<?php
// Leer las entradas
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));
// TODO: Crea las tres funciones aquí (calculateArea, calculatePerimeter, calculateDiagonal)
// TODO: Llama a la función apropiada usando la sintaxis de función variable y almacena el resultado
// Mostrar el resultado
echo $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