RSS Feed Seguiteci su Twitter! Seguiteci su Facebook!
NEWS: Questo Blog e' rimasto inattivo per più di 18 mesi , quindi possono esserci link non funzionanti o altre problematiche dovute alla mancata manutenzione. Cosa vi piace o non in questo BLOG?, scrivete tutte le vostre recensioni in questa area commenti, provvederemo immediatamente a cancellare il Blog o migliorarlo nelle sue aspettative. Grazie.

Lezione07: Le variabili


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;
?>
Con questa riga di codice definiamo la variabile 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;
?>
In questo brano di codice abbiamo valorizzato tre variabili: 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;
?>
Questo codice non produrrà alcun output, in quanto la variabile 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;
?>
Questo codice vorrebbe assegnare i valori 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.'
';
?>
Il risultato sul browser sarà 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!