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 a 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"); // Salida: Hello, Alice!
?>Las funciones variables proporcionan una forma limpia e intuitiva de ejecutar código de forma dinámica. Esta característica es particularmente útil cuando necesitas llamar a diferentes funciones basándose en condiciones o en la entrada del usuario, haciendo que tu código sea más flexible y adaptable.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Desafío
FácilCrea tres funciones: calculateArea que recibe dos números (largo y 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"), el largo y el ancho. Lee las tres entradas, guarda el nombre de la función en una variable, llama a esa función utilizando la sintaxis de funciones variables 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 el largo (un número que puede contener decimales), la tercera línea contiene el ancho (un número que puede contener decimales)
Resultado esperado: El resultado del cálculo
Hoja de referencia
Las funciones variables le permiten llamar a funciones de forma dinámica tratando a una variable que contiene el nombre de la función como la función misma.
Sintaxis básica - añada paréntesis a una variable que contiene el nombre de una función:
<?php
function sayHello() {
echo "Hello World!";
}
$functionName = "sayHello";
$functionName(); // Salida: Hello World!
?>Las funciones variables también funcionan con parámetros:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
$func = "greet";
$func("Alice"); // Salida: Hello, Alice!
?>Pruébalo tú mismo
<?php
// Leer entradas
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));
// TODO: Crear las tres funciones aquí (calculateArea, calculatePerimeter, calculateDiagonal)
// TODO: Llamar a la función apropiada usando la sintaxis de función variable y almacenar el resultado
// Imprimir 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ón