In uno script PHP i nomi di variabili sono prefissati dal simbolo $
(dollaro); ad esempio, la seguente istruzione:
$a = $b + $c
assegna ad una variabile di nome a la somma dei valori di altre due
variabili, rispettivamente b e c . Il simbolo = è
l’operatore di assegnamento.
Per creare una variabile è sufficiente assegnarle un valore; in altre parole
non vi è alcuna necessità di dichiararla esplicitamente, come avviene, invece,
in altri linguaggi. Si parla, dunque, di dichiarazione implicita. Se vogliamo
visualizzare nella nostra pagina PHP il valore di una variabile, in modo che
venga mostrata dal browser del visitatore, possiamo usare la funzione echo .
Ad esempio:
// Questa istruzione visualizza il valore della
// variabile $a
echo $a;
A disposizione del programmatore c’è anche un certo numero di variabili
predefinite, cioè di variabili il cui valore è già impostato. Solitamente
queste variabili contengono informazioni circa l’ambiente di esecuzione dello
script PHP. Esaminiamone alcune di uso frequente.
La variabile $PHP_SELF contiene il percorso dello script in
esecuzione; ad esempio, all’interno dello script PHP raggiungibile all’indirizzo
http://www.latoserver.it/index.php3
il valore della variabile $PHP_SELF sarà /index.php3 .
La variabile $HTTP_HOST contiene il nome del server su cui lo script
viene eseguito; nel caso dell’esempio precedente il valore di $HTTP_HOST
sarebbe www.latoserver.it .
Le variabili $HTTP_REMOTE_HOST e $HTTP_REMOTE_ADDR , invece,
forniscono rispettivamente il nome di dominio e l’indirizzo IP del visitatore.
L’elenco completo delle variabili predefinite può essere visualizzato usando
la funzione phpinfo() : si veda, in proposito, la lezione precedente.
Vediamo adesso cosa può contenere una variabile. Abbiamo parlato di valori, ma a che tipo di valori facciamo riferimento? Introduciamo dunque i tipi di dato che PHP mette a disposizione del programmatore.
I tipi di dato supportati da PHP si distinguono in tipi scalari e tipi
compositi: sono tipi scalari i numeri (sia interi che in virgola mobile) e le stringhe; sono tipi compositi gli array e gli oggetti.
A partire dalla versione 4 di PHP, inoltre, è stato introdotto un nuovo tipo scalare: quello booleano. Una variabile booleana può assumere solo due valori, vero (costante
TRUE ) o falso (costante FALSE ).
// $b è una variabile di tipo bool
$b = TRUE;
// $num è una variabile di tipo intero
$num = 25;
// $pi_greco è un numero in virgola mobile;
// si noti il punto (virgola decimale)
$pi_greco = 3.14;
// $messaggio è una stringa
$messaggio = "Ciao a tutti!";
Un array in PHP può corrispondere sia ad un vettore, cioè ad una struttura dati in cui ogni elemento è individuato da un indice numerico, sia ad una tabella di hash, cioè (in modo molto semplice)
ad una collezione di coppie nome/valore. In PHP, infatti, tali strutture sono sostanzialmente la stessa cosa.
Un array può essere creato esplicitamente utilizzando il costrutto array() oppure implicitamente. Vediamo alcuni esempi.
// Questo è un array di numeri interi
// Lo creo esplicitamente usando array()
$primi = array( 2, 3, 5, 7, 11 );
// Questo array lo creo implicitamente
$pari[0] = 2;
$pari[1] = 4;
$pari[2] = 6;
// Questa è una tabella di hash
$bookmark["puntoinf"] = "punto-informatico.it"
$bookmark["latoserver"] = "www.latoserver.it"
Per accedere ad un elemento di un array si può utilizzare sia il corrispondente indice numerico, sia la chiave (se si tratta di una tabella di hash). Ad esempio:
// Questa istruzione stampa "7"
// cioe' l'elemento di indice 3 dell'array $primi
echo $primi[3];
// Questa istruzione stampa "www.latoserver.it"
echo $bookmark["latoserver"];
A differenza di quanto avviene in altri linguaggi di programmazione, un array in PHP può contenere elementi di tipo diverso. Ad esempio, è perfettamente legittimo costruire un array che contenga sia numeri interi che stringhe.
// Questo è un array valido!
// Contiene: un numero intero, una stringa,
// un numero in virgola mobile ed un altro array!
$mix = array( 1, "ciao", 3.14, array( 1, 2, 3 ) );
Il tipo di dato object verrà trattato in una lezione successiva dedicata alla programmazione orientata agli oggetti con PHP.
Nella prossima puntata parleremo delle form (moduli) HTML e di come utilizzarle per inviare informazioni ad uno script PHP.
Luca Balzerani , studente di
Informatica, è fondatore e presidente di LatoServer.it ,
sito dedicato alla programmazione server-side ed al backend in generale.