Le variabili
Le variabili sono tra i componenti fondamentali di qualsiasi linguaggio di programmazione, in quanto consentono di trattare i dati del programma senza sapere a priori quale sarà il loro valore. Si può immaginare una variabile come una specie di contenitore all'interno del quale viene conservato il valore che interessa, e che può cambiare di volta in volta.
In PHP il nome delle variabili si compone usando lettere, numeri ed il trattino basso, o underscore (_). Il primo carattere del nome non può mai essere un numero. Il nome delle variabili è sensibile alle maiuscole ed alle minuscole (case sensitive), di conseguenza, nomi di variabili che differiscono solo per l'uso delle maiuscole/minuscole sono per PHP variabili distinte. Negli script PHP il nome delle variabili è sempre preceduto dal simbolo del dollaro $. PHP ha una caratteristica che lo rende molto più pratico rispetto ad altri linguaggi di programmazione: non richiede che le variabili vengano dichiarate prima del loro uso. L'esistenza di una variabile inizia direttamente con la sua valorizzazione:
<?php $a = 25; ?>
Con questo codice si definisce la variabile $a, assegnandole il valore 25. L'istruzione si conclude sempre con il punto e virgola. L'utilità di una variabile diventa evidente nel momento in cui la si utilizza all'interno di espressioni matematiche o logiche. Ecco un semplice esempio:
<?php $a = 25; $b = 4; $c = $a * $b; echo "Il risultato dell'operazione (25 * 4) è $c"; ?>
In questo codice si introducono tre variabili: $a (che vale 25), $b (che vale 4), $c che conterrà il valore del prodotto di $a e $b. L'ultima istruzione stampa il risultato ottenuto, si noti che dopo l'esecuzione del codice $c varrà 100.
Negli esempi precedenti è stata eseguita l'inizializzazione delle variabili, indicata spesso con il termine gergale di valorizzazione, termine che sta ad indicare la prima volta in cui si assegna un valore ad una variabile. In realtà ci si può riferire ad una variabile anche senza che sia stata inizializzata, ma questa pratica è un'operazione sconsigliata e potrebbe generare errori durante l'esecuzione in base ad alcune direttive di configurazione di PHP che si vedranno più avanti. Ad esempio, supponendo che nello script non sia stata valorizzata nessuna variabile $z, si potrebbe scrivere un'istruzione del genere:
<?php 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 si possono abilitare attraverso il file di configurazione
php.ini
. Un errore di questo genere 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. Un esempio chiarisce meglio quanto esposto:
<?php
$a = 25;
$b = 4;
$risultato = $a + $b;
echo $risutato;
?>
Questo codice assegnare i valori 25 e 4 a due variabili, poi effettua la somma nella variabile $risultato ed infine dovrebbe stampare il risultato. Però contiene un errore: nell'istruzione di stampa viene indicata la variabile '$risutato' invece che '$risultato'. Chi ha scritto il codice si aspetterebbe di vedere comparire sul browser il risultato 29, invece non troverà proprio nulla, perchè la variabile '$risutato' non è definita, e quindi non ha nessun valore.
A questo punto, il programmatore potrebbe anche perdere molto
tempo alla ricerca del problema (in realtà questo può sembrare un problema
banalissimo, ed in effetti lo è, ma un caso del genere si presenta di solito
in un contesto molto più complesso, ed stranamente
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 (vedere nel file PHP.INI che siano
presenti le seguenti direttive:
display_errors = On
error_reporting = E_ALL
I tipi di dato
Le variabili contengono i dati che devono essere elaborati, ma i dati possono essere di tipo differente, ognuno dei quali ha un comportamento ed un'utilità particolare. Analizzeremo brevemente i tipi di dato che PHP permette di utilizzare all'interno del proprio codice premettendo che PHP, a differenza di altri linguaggi, associa il tipo di dato al valore e non alla variabile (ad esempio possiamo assegnare alla stessa variabile una stringa e poi un numero senza incorrere in alcun errore) ed effettua conversioni automatiche dei valori nel momento in cui siano richiesti tipi di dato differenti (ad esempio in un'espressione).
Booleano - Questo tipo di dato serve per indicare i valori vero o falso all'interno di espressioni logiche. Il tipo booleano è associato alle variabili che contengono il risultato di un'espressione booleana oppure i valori true e false. Vediamo un rapido esempio:
<?php $v = true; $f = false; ?>
Intero - Un numero intero, positivo o negativo, il cui valore massimo (assoluto) può variare in base al sistema operativo su cui gira PHP, ma che generalmente si può considerare, per ricordarlo facilmente, di circa 2 miliardi (2 elevato alla 31esima potenza), nei sistemi a 32 bit.
<?php
$int1 = 231;
$int2 = -435;
$int3 = 7 * 8; //$int3 vale 56
?>
Virgola mobile - Un numero decimale (a volte citato come "double" o "real"). Attenzione: per indicare i decimali non si usa la virgola, ma il punto. Anche in questo caso la dimensione massima dipende dalla piattaforma. Normalmente comunque si considera un massimo di circa 1.8e308 con una precisione di 14 cifre decimali. Si possono utilizzare le seguenti sintassi:
<?php $vm1 = 4.153; // 4,153 $vm2 = 3.2e5; // 3,2 * 10^5, cioè 320.000 $vm3 = 4E-8; // 4 * 10^-8, cioè 4/100.000.000 = 0,00000004 ?>
Stringa - E' un qualsiasi insieme di caratteri, senza limitazione di numero, normalmente contenuto all'interno di una coppia di apici doppi o apici singoli. Le stringhe delimitate da apici sono la forma più semplice, consigliata quando all'interno della stringa non vi sono variabili di cui vogliamo ricavare il valore:
<?php $st = 'Carlo, entrando, disse: "Ciao a tutti", ma nessuno rispose.'; echo $st; ?>
Questo codice stamperà la frase:
Carlo, entrando, disse: "Ciao a tutti", ma nessuno rispose.
Si noti che poichè la stringa è stata delimitata inizialmente con apici semplici gli apici doppi in essa contenuti
vengono riportati in output come normalissimi caratteri.
Delimitare con apici doppi, invece, consente di usare le stringhe in una maniera più
sofisticata, in quanto, se all'interno della stringa delimitata da virgolette
PHP riconosce un nome di variabile, lo sostituisce con il valore della variabile
stessa.
<?php $nome = 'Anna'; echo "$nome è simpatica... a pochi<br>"; // stampa: Anna è simpatica... a pochi echo "{$nome} è simpatica... a pochi<br>"; // stampa: Anna è simpatica... a pochi echo '$nome è simpatica... a pochi<br>'; // stampa: $nome è simpatica... a pochi ?>
Array - Possiamo considerare un array come una collezione di variabili, un contenitore di una serie di valori, ciascuno dei quali identificato da un indice che lo riconosce univocamente. Facciamo un primo esempio, definendo un array composto di sette valori:
<?php $colori = array('bianco', 'giallo', 'blu', 'verde', 'rosso', 'arancio', 'nero'); echo $colori[1]; //stampa 'giallo' echo $colori[5]; //stampa 'arancio' ?>
A questo punto ciascuno dei nostri sette colori è individuato da un indice numerico progressivo, assegnato automaticamente da PHP partendo da 0 (zero). Per recuperare un determinato valore dalla variabile che contiene l'array, è sufficiente specificare il suo indice all'interno di parentesi quadre apposte alla destra del nome della variabile:
Gli array sono così importanti che meritano un approfondimento nei prossimi capitoli.
Oggetto - Le classi e gli oggetti sono due degli argomenti sui quali gli sviluppatori di PHP hanno voluto puntare maggiormente nelle ultime versioni, a partire dalla 5. L'argomento verrà approfondito nei prossimi capitoli.
Noi veniamo rapiti dalla bellezza di un fiore o dal silenzio di un bosco, e non ci rendiamo conto che dietro quel fiore e quel bosco c'è sempre una lotta per la vita.
Giacomo Leopardi