Menu
CoddyTech

Ámbito de las variables

Parte de la sección Fundamentos del Journey de PHP de Coddy. Lección 67 de 71.

Las variables creadas dentro de una función son completamente independientes de las variables que están fuera de ella. Este concepto se llama ámbito de las variables, y comprenderlo evita errores confusos en tu código.

Una variable definida dentro de una función solo existe dentro de esa función. Se denomina variable local:

<?php
function sayHi() {
    $message = "Hello!";
    echo $message;
}

sayHi();
echo $message; // Error: $message no existe aquí
?>

La variable $message se crea dentro de sayHi() y desaparece cuando termina la función. Intentar acceder a ella desde fuera provoca un error.

Del mismo modo, las variables definidas fuera de una función no están disponibles automáticamente dentro de ella:

<?php
$name = "Alice";

function greet() {
    echo $name; // Error: $name no está definida dentro de esta función
}

greet();
?>

Aunque $name existe en el código principal, la función no puede verlo. Para usar valores externos en una función, pásalos como parámetros: ese es el enfoque limpio y recomendado que ya has aprendido.

Esta separación es realmente útil. Significa que las funciones no cambiarán accidentalmente las variables de otras partes de tu programa, lo que hace que tu código sea más predecible y más fácil de depurar.

challenge icon

Desafío

Fácil

Lee dos líneas de entrada:

  1. El nombre de una persona (p. ej., Alice)
  2. Una cantidad de bonificación como número entero (p. ej., 50)

Crea una función llamada calculateBonus que acepte dos parámetros: $name (cadena) y $bonus (int).

Dentro de la función:

  • Crea una variable local $baseSalary y asígnale el valor 1000
  • Calcula el pago total sumando $baseSalary y $bonus
  • Devuelve una cadena con el formato: [name] earns [total]

Llama a la función con los valores de entrada e imprime el resultado devuelto.

Ejemplo 1:

Si las entradas son Alice y 50, la salida debería ser:

Alice earns 1050

Ejemplo 2:

Si las entradas son Bob y 200, la salida debería ser:

Bob earns 1200

Ejemplo 3:

Si las entradas son Emma y 0, la salida debería ser:

Emma earns 1000

Pruébalo tú mismo

<?php
// Lee la entrada
$name = trim(fgets(STDIN));
$bonus = intval(fgets(STDIN));

// TODO: Crea la función calculateBonus a continuación
// - Debe aceptar $name (string) y $bonus (int) como parámetros
// - Crea una variable local $baseSalary con el valor 1000
// - Calcula el pago total y devuelve "[name] earns [total]"



// Llama a la función e imprime el resultado
echo calculateBonus($name, $bonus);
?>
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 Fundamentos

Practica por tu cuenta: Compilador de PHP online