Salta ai contenuti
Manuale LogoManuale Logo

Scope delle variabili

Lo scope è la zona in cui una variabile esiste ed è leggibile.

Una variabile creata dentro una funzione non è automaticamente disponibile fuori, e una variabile creata fuori non entra automaticamente nella funzione.

<?php
function saluta() {
$nome = "Luca";
echo $nome;
}
saluta();

$nome esiste solo dentro la funzione saluta.

Questo codice invece non funziona come potresti aspettarti:

<?php
function preparaNome() {
$nome = "Luca";
}
preparaNome();
echo $nome;

Fuori dalla funzione, $nome non esiste.

Il modo più chiaro per portare dati dentro una funzione è usare i parametri.

<?php
function saluta($nome) {
echo "Ciao $nome";
}
saluta("Sara");

Il modo più chiaro per portare dati fuori da una funzione è usare return.

<?php
function creaMessaggio($nome) {
return "Ciao $nome";
}
$messaggio = creaMessaggio("Marta");
echo $messaggio;

PHP permette di usare global, ma è meglio limitarlo.

<?php
$iva = 22;
function mostraIva() {
global $iva;
echo $iva;
}

Il codice funziona, ma la funzione dipende da un valore esterno. Con parametri e return, il collegamento è più chiaro.

Lo scope riduce il rischio che una variabile venga modificata per errore da una parte lontana del programma. Una funzione con parametri chiari è più prevedibile.

<?php
function applicaSconto($prezzo, $sconto) {
return $prezzo - $sconto;
}
$totale = applicaSconto(30, 5);
echo $totale;

La funzione lavora solo con i valori che riceve e non deve cercare variabili nascoste nel resto del file.

Puoi avere variabili con lo stesso nome in scope diversi.

<?php
$nome = "Luca";
function saluta() {
$nome = "Sara";
echo $nome;
}
saluta();
echo $nome;

Dentro la funzione $nome vale Sara. Fuori vale ancora Luca.

Quando scrivi una funzione, prova a passarle tutto ciò che le serve tramite parametri. Se deve produrre un risultato, usa return. Considera global l’ultima scelta.