Uno degli elementi base di ogni linguaggio di programmazione (compreso PHP) sono certamente le variabili.
Cos’è una variabile?
La variabile può essere definita come un’area di memoria in cui vengono salvate delle informazioni (a cui il programmatore assegna un particolare identificatore) che possono mutare durante la fase di elaborazione del programma stesso.
In PHP tutte le variabili iniziano con il simbolo del dollaro ($). Il valore di una variabile viene assegnato con un "uguale" (=).
Variabili di tipo stringa, numeriche e booleane
Vediamo un esempio di variabile testuale (più correttamente definita variabile di tipo stringa):
// posso usare le virgolete
$variabile = "contenuto...";
// oppure l'apice
$variabile = 'contenuto...';
Qualora la vostra variabile, viceversa, avesse un valore numerico (cosiddette variabili numeriche) non sarebbero necessarie le virgolette; ecco un esempio:
// numero intero
$variabile = 7;
// numero decimale
$valiabile = 7.3;
Un altro tipo di variabile molto utilizzata è la variabile booleana. Si dice "booleana" una variabile che può avere come valore solo "vero" (true) o "falso" (false):
// variabile booleana con valore true
$variabile = true;
// variabile booleana con valore false
$variabile = false;
Si noti che true e false devono essere scritti senza virgolette o apici (non sono delle stringhe!).
Stampare a video il valore di una variabile
Attraverso le variabili possiamo compiere diverse operazioni come, ad esempio, calcoli matematici o confronti. La cosa più semplice che possiamo fare con una variabile è stamparne a video il contenuto (ovviamente questa operazione non ha senso per le variabili di tipo booleano).
Vediamo quindi un semplice codice PHP che sfrutti le variabili ed il comando echo per stampare a video, appunto, il valore di una variabile:
<?php
$variabile = "Testo da stampare";
echo $variabile;
?>
Attenzione: i nomi di variabile sono case sensitive… attenzione quindi a maiuscole e minuscole!
Facciamo un altro esempio:
<?php
$oggetto = "casa";
$colore = "rosso";
echo "La " . $oggetto . " è di colore " . $colore;
?>
In quest’ultimo esempio abbiamo stampato a video una frase al cui interno sono presenti due variabili.
Concatenazione di stringhe
Nell’esempio qui sopra abbiamo utilizzato due variabili e le abbiamo stampate a video all’interno di una frase. Come avrete notato abbiamo usato il punto (.) per unire tra loro le diverse parti della frase. Il punto, infatti, è usato in PHP come operatore di concatenazione.
echo "La " . $oggetto . " è di colore " . $colore;
Se voglio semplicemente unire due (o più variabili) potrò scrivere:
echo $var1 . $var2 . $var3;
E’ appena il caso di sottolineare come, nell’esempio qui sopra, il contenuto delle variabili verrà stampato a video senza alcuno spazio. Se avessimo voluto aggiungere uno spazio tra una variabile ed un altra avremmo dovuto scrivere:
echo $var1 . " " . $var2 . " " . $var3;
Un caso particolare è quando si vuole modificare il valore di una variabile mediante l’operatore di concatenazione. Vediamo un esempio:
$oggetto = "automobile";
$colore = "bianca";
// supponiamo di voler cambiare il valore di $oggetto incorporando il colore
$oggetto = $oggetto . " " . $colore;
Lo stesso risultato lo avremmo potuto raggiungere così:
$oggetto .= " " . $colore;
In pratica abbiamo utilizzato l’operatore di concatenazione (.) in congiunzione all’operatore di assegnazione (=). Con questa sintassi la variabile a sinistra ($oggetto) avrà come nuovo valore una stringa data dal suo valore originale a cui verrà concatenato ciò che segue dopo l’uguale.
Concatenare stringhe all’interno di echo o print
Bisogna ricordare in questa sede che il PHP prevede anche un altro modo di concatenare le stringe all’interno del comando echo o print senza nessun puntino, in questo modo:
<?php
$oggetto = "casa";
$colore = "rosso";
echo "La $oggetto è di colore $colore";
?>
In pratica le variabili, inserite nel contesto di un testo tra virgolette, vengono automaticamente riconosciute e sostituite dal loro valore (questa procedura è detta "interpolazione").
Quest’ultimo metodo, seppur più semplice, può tuttavia presentare dei problemi in situazioni particolari che non ritengo opportuno trattare in questa sede. Il mio consiglio, quindi, è di utilizzare la forma vistra sopra (è più corretta) che fa uso del punto per concatenare le diverse parti della stringa da restituire in output.