Una variabile è come un grande contenitore, la sua funzione è appunto quella di memorizzare valori alfanumerici con: un tipo, un nome e un ambito. Tutte le variabili sono dichiarate e assegnate con questa sintassi: $nome_variabile = valore;. Come sempre notiamo che l’istruzione ha bisogno del punto e virgola perché altrimenti non accetterà istruzioni future. Le variabili nel PHP sono case-sensitive ovvero che A1 e a1 sono due variabili distinte. Il tipo di una variabile sta a significare che i valori che possono essere assegnati a tale variabile sono: interi, con virgola mobile, char(caratteri). Ma la bellezza del PHP sta proprio in questo, una variabile non ha bisogno di avere una dichiarazione di che tipo è, visto che PHP associa le variabili in un singolo contenitore codificandole tutte di un solo tipo. Vediamo un esempio di dichiarazione di variabile in C e in PHP:
In C:
#include<stdio.h>
int main()
{
int x = 32; /* comunica al compilatore che la x è intera */
printf(“%d”, x); /* stampa il valore contenuto nella variabile x */
return 0;
}
Come vediamo in C la variabile x è stata prima definita come intera e poi le è stato assegnato il valore 32! In PHP viceversa, usiamo questa metodica:
In PHP:
<?php
$var1 = 124; // numero intero
$var2 = 34,23; // variabile con virgola mobile
$result = $var1 + $var2; // somma la variabile a alla variabile b
echo $result;
?>
Come ben notiamo invece, nel PHP usiamo solamente il nome della variabile e il numero che le assegnamo, però in PHP possiamo anche assegnare un carattere o una stringa di lettere oltre ai numeri, come? Beh semplicemente inserendo delle virgolette, vediamo nell’esempio qui sotto:
<?php
$var_1 = 12; // variabile intera
$var_2 = 12,3; // variabile a virgola mobile
$txt = “Sono ghiro”; // variabile stringa
?>
Come vediamo le differenze di dichiarazione variabile sono minime, a eccezione della variabile $txt che inserisce le virgolette. Voglio però far presente che variabili con valore numerico posso essere utilizzate nelle comuni operazioni matematiche, mentre le variabili stringa hanno solamente un operatore, ovvero quello di concatenamento(.), come nell’esempio qui riportato:
<?php
$txt_1 = “Ciao ”;
$txt_2 = “Ghiro”;
echo $txt_1.$txt_2;
?>
Vediamo appunto che il risultato che si otterrà da questa operazione sarà: Ciao Ghiro. Inoltre una opzione del PHP molto comoda è la gestione degli errori (come dicevo nell’introduzione al PHP, questa opzione risiede nel file php.ini). Infatti se nel file php.ini si abilita la voce error_reporting e si modifica da ciò che troviamo attualmente a E_ALL si avrà il responso di tutti gli errori che avvengono nei nostri script e inoltre se si abilita anche la voce display _errors mediante la riga display_errors = OFF (naturalmente dobbiamo settarla a ON) per visualizzare sullo schermo l’output per gli errori. Questi due parametri sono molto importanti nello sviluppo in PHP perché ci presentano gli errori che avvengono di nascosto, naturalmente una volta finito il lavoro rimettiamo tutto ad OFF poiché un possibile web hacker, potrebbe usare queste informazioni come vulnerabilità per l’attacco al nostro sito. Ma la gestione degli errori la vedremo più approfonditamente nei capitoli di debug e gestione degli errori! Ritornando sul concetto delle variabili una funzione che il PHP possiede è IsSet e l’istruzione unset. La funzione IsSet determina se la variabile $var1 è impostata con un proprio valore numerico oppure se non le è stato mai assegnato alcun valore. IsSet comunica tramite valore logico TRUE(1) che la variabile ha già ricevuto precedentemente un’assegnazione mentre con valore logico FALSE(0) che non è mai stata usata. Mentre l’istruzione unset ha il compito di riportare la variabile ad uno stato NON assegnato. Vediamo adesso un suo utilizzo:
<?php
$var1 = 10;
$var2 = 23;
$result = $var1 + $var2;
echo $result;
/* Ora utilizziamo l'istruzione IsSet per verificare se la variabile $result è settata */
echo “La variabile result è settata?<br />” /* Se l'output sarà 1 allora il valore è true */
echo IsSet($result);
?>
OUTPUT:
33
1
Come vediamo la somma di 10+23 da come risultato 33 mentre l’uno che vediamo in output è il risultato della nostra richiesta alla funzione IsSet. Se ora usiamo l’istruzione unset per azzerare la variabile $result, IsSet con una variabile vuota come si comporterà? Presto detto, scriviamo qui sotto un codice d’esempio e mostriamone l’output:
<?php
$var_1 = 12;
$var_2 = 25;
$result = $var_1 * $var_2;
unset($result);
echo “La variabile result è settata?<br />”;
echo IsSet($result);
?>
OUTPUT:
300
La variabile result è settata?
Come ben vediamo non abbiamo avuto alcuna risposta, ciò perché è stata settata a 0 con l’istruzione unset! E IsSet quando riceve un valore FALSE(0) non mostra alcun risultato!