Le variabili sono componenti fondamentali di qualsiasi linguaggio di programmazione, in quanto ci consentono di trattare i dati del nostro programma senza sapere a priori quale sarà il loro valore. Possiamo immaginare una variabile come una specie di contenitore all'interno del quale viene conservato il valore che ci interessa, e che può cambiare di volta in volta.
In PHP possiamo scegliere il nome delle variabili usando lettere, numeri ed il trattino di sottolineatura, o underscore (
_
). Il primo carattere del nome deve essere però una lettera o un underscore (non un numero).Dobbiamo inoltre ricordare che il nome delle variabili è sensibile all'uso delle maiuscole e delle minuscole: di conseguenza, se scriviamo due volte un nome di variabile usando le maiuscole in maniera differente, per PHP si tratterà di due variabili distinte!
In PHP il nome delle variabili è preceduto dal simbolo del dollaro (
$
).
PHP ha una caratteristica che lo rende molto più flessibile rispetto ad
altri linguaggi di programmazione: non richiede, infatti, che le
variabili vengano dichiarate prima del loro uso. Possiamo quindi
permetterci di riferirci ad una variabile direttamente con la sua
valorizzazione:$a = 5; ?>
a
, assegnandole il valore 5
.
In fondo all'istruzione abbiamo il punto e virgola, che, come già
accennato in precedenza, deve chiudere tutte le istruzioni PHP.
L'utilità di una variabile diventa fondamentale nel momento in cui è
possibile utilizzarla all'interno di espressioni matematiche o logiche.
Vediamo un semplice esempio:$a = 9; $b = 4; $c = $a * $b; echo "Il risultato dell'operazione (9 * 4) è :"; echo $c; ?>
a
, alla quale stavolta abbiamo dato il valore 9
; b
, a cui abbiamo assegnato il valore 4
e c
, che dovrà assumere il valore del prodotto di a
e b
. Infine abbiamo stampato il risultato ottenuto. Evidentemente, dopo l'esecuzione del codice c
varrà 36
.Negli esempi abbiamo visto l'inizializzazione delle variabili, termine che sta ad indicare la prima volta in cui assegniamo un valore ad una variabile. In realtà, possiamo riferirci ad una variabile anche senza che sia stata inizializzata, anche se questa risulta un'operazione sconsigliata e potrebbe generare errori durante l'esecuzione in base ad alcune direttive di configurazione di PHP che vedremo più avanti. Ad esempio, supponendo che nel nostro script non sia stata valorizzata nessuna variabile
z
, potremmo avere un'istruzione di questo genere:echo $z; ?>
z
non esiste. Gli errori generati quando si cerca di utilizzare in lettura una variabile non inizializzata sono di tipo E_NOTICE
:
sono gli errori di livello più basso, cioè meno gravi, che normalmente
non vengono mostrati da PHP, ma che possiamo abilitare attraverso il
file di configurazione php.ini
. Un errore di questo genere
in effetti non compromette il buon funzionamento dello script, che
infatti viene eseguito regolarmente; però potrebbe essere ugualmente
indice di un qualche errore commesso da chi ha scritto il codice.
Facciamo un esempio per chiarire meglio quanto esposto:$a = 74; $b = 29; $risultato = $a + $b; echo $risulato; ?>
74
e 29
a due variabili, poi sommarli e infine stampare il risultato. Però
contiene un errore: nell'istruzione di stampa abbiamo indicato la
variabile risulato
invece che risultato
. Chi ha scritto il codice si aspetterebbe di vedere comparire sul browser il risultato 103
, invece non troverà proprio nulla, perchè la variabile risulato
non è definita, e quindi non ha nessun valore.Si può perdere anche molto tempo alla ricerca del problema (in realtà questo sembra un problema banalissimo, ed in effetti lo è; però ricordiamoci che un caso del genere potrebbe presentarsi in un contesto molto più complesso, ed inoltre molto spesso un errore semplice come questo si dimostra molto più difficile da scovare per chi lo ha commesso). Qui però la segnalazione di errore di PHP può venirci in aiuto: infatti, se siamo abituati ad utilizzare le variabili nella maniera più corretta, cioè dopo averle inizializzate, un errore come questo ci indica chiaramente che abbiamo sbagliato a scrivere il nome. Per questo il nostro consiglio è quello di tenere abilitata la visualizzazione degli errori anche di tipo
E_NOTICE
, e di utilizzare le variabili solo se inizializzate o dopo aver controllato la loro esistenza.In questo modo impareremo da subito a programmare in maniera più corretta e, anche se impiegheremo qualche minuto in più per cominciare, risparmieremo tante ore (e tanto fegato) per il futuro...
Concludiamo questa lezione sulle variabili con un accenno alle variabili dinamiche, pratica tuttora sconsigliata ma che potrebbe capitarvi di incontrare in contesti relativi a script di vecchia fattura; in qualche situazione può presentarsi la necessità di utilizzare delle variabili senza sapere a priori il loro nome. In questi casi, il nome di queste variabili sarà contenuto in ulteriori variabili. Facciamo un esempio: col codice seguente stamperemo a video il contenuto delle variabili
pippo
, pluto
e paperino
:$pippo = 'gawrsh!'; $pluto = 'bau!'; $paperino = 'quack!'; $nome = 'pippo'; echo $$nome.' '; $nome = 'pluto'; echo $$nome.' '; $nome = 'paperino'; echo $$nome.' '; ?>
gawrsh!
, bau!
e quack!
,
ciascuno sulla propria riga (infatti ogni istruzione print crea il tag
HTML che indica al browser di andare a capo; vedremo più avanti che il punto serve a concatenare i valori che vengono stampati). Il doppio segno del dollaro ci permette infatti di usare la variabile
nome
come contenitore del nome della variabile di cui vogliamo stampare il
valore. In pratica, è come se avessimo detto a PHP: «stampa il valore
della variabile che si chiama come il valore della variabile nome
».
Questo era un esempio banale, e l'uso delle variabili dinamiche era in
realtà perfettamente inutile, in quanto sapevamo benissimo come si
chiamavano le variabili che ci interessavano. Però in situazioni reali
può capitare di trovarsi in un ambito nel quale non sappiamo come si
chiamano le variabili, e dobbiamo usare altre variabili per ricavarne il
nome, oltrechè il valore.
0 commenti:
Posta un commento
Proponi un'idea, segnalaci un problema.
Entra a far parte di CS3, pubblica i tuoi articoli.
Scrivi un commento!