Menu
Coddy logo textTech

Ambito delle variabili

Fa parte della sezione Fondamenti del percorso PHP di Coddy. Lezione 67 di 71.

Le variabili create all'interno di una funzione sono completamente separate dalle variabili al di fuori di essa. Questo concetto si chiama ambito delle variabili e comprenderlo previene bug difficili da individuare nel tuo codice.

Una variabile definita all'interno di una funzione esiste solo all'interno di quella funzione. Si chiama variabile locale:

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

sayHi();
echo $message; // Errore: $message non esiste qui
?>

La variabile $message viene creata all'interno di sayHi() e scompare quando la funzione termina. Provare ad accedervi dall'esterno causa un errore.

Analogamente, le variabili definite al di fuori di una funzione non sono automaticamente disponibili al suo interno:

<?php
$name = "Alice";

function greet() {
    echo $name; // Errore: $name non è definita all'interno di questa funzione
}

greet();
?>

Anche se $name esiste nel codice principale, la funzione non può vederlo. Per usare valori esterni in una funzione, passali come parametri: è l'approccio più pulito e consigliato, che hai già imparato.

Questa separazione è in realtà utile. Significa che le funzioni non modificheranno accidentalmente le variabili in altre parti del tuo programma, rendendo il tuo codice più prevedibile e più facile da correggere.

challenge icon

Sfida

Facile

Leggi due righe di input:

  1. Il nome di una persona (ad es., Alice)
  2. Un importo del bonus come numero intero (ad es., 50)

Crea una funzione chiamata calculateBonus che accetti due parametri: $name (stringa) e $bonus (int).

All'interno della funzione:

  • Crea una variabile locale $baseSalary e impostala a 1000
  • Calcola la retribuzione totale sommando $baseSalary e $bonus
  • Restituisci una stringa nel formato: [name] earns [total]

Chiama la funzione con i valori di input e stampa il risultato restituito.

Esempio 1:

Se gli input sono Alice e 50, l'output dovrebbe essere:

Alice earns 1050

Esempio 2:

Se gli input sono Bob e 200, l'output dovrebbe essere:

Bob earns 1200

Esempio 3:

Se gli input sono Emma e 0, l'output dovrebbe essere:

Emma earns 1000

Provalo tu

<?php
// Leggi l'input
$name = trim(fgets(STDIN));
$bonus = intval(fgets(STDIN));

// TODO: Crea la funzione calculateBonus qui sotto
// - Deve accettare $name (string) e $bonus (int) come parametri
// - Crea una variabile locale $baseSalary impostata a 1000
// - Calcola la retribuzione totale e restituisci "[name] earns [total]"



// Chiama la funzione e stampa il risultato
echo calculateBonus($name, $bonus);
?>
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore PHP online