Menu
Coddy logo textTech

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.

challenge icon

Desafío

Fácil

Crea 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;
?>
quiz iconPonte a prueba

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

Practica por tu cuenta: Compilador de PHP online