Controllare che una variabile sia stata valorizzata: la funzione empty() e la funzione isset()
Spesso ci può tornare utile controllare se una variabile è valorizzata o meno, in modo da poter effettuare due scelte diverse a seconda del caso. Questo tipo di controllo avviene generalmente nei controlli di nullità dei form.
Con questo breve esempio mostreremo come sia possibile effettuare questo tipo di controllo utilizzando la funzione empty(), la quale restituirà true nei casi in cui la variabile sia pari a "" , 0, "0" , FALSE, NULL, o comunque con variabili non definite come, ad esempio, array(). In caso contrario restituirà false.
In queste poche righe di codice analizziamo la funzione grazie ad un ciclo di controllo if-else che ci dirà, grazie ad una stampa a video, se la variabile è stata valorizzata o meno.
<?php
$num = 0; //definisco la variabile
if (empty($num)) { // restituisce true perchè $num è uguale a 0
print 'La variabile è uguale a 0, "0" , FALSE, NULL oppure non è definita';
}
else {
print 'La variabile è definita';
}
?>
Il codice è semplicissimo e finanche commentato; non necessita pertanto di ulteriori chiarimenti.
Finora abbiamo visto come effettuare dei controlli di nullità grazie alla funzione empty(). Lo stesso risultato può essere realizzato anche anche lavorando con la funzione isset().
Al contrario di empty(), la funzione isset() restituisce true se la variabile è stata valorizzata, in caso contrario resituirà false.
Possiamo notare appunto come entrambe le funzioni portino allo stesso scopo, anche se con una piccola differenza di logica booleana. La funzione empty(), infatti, restituirà true se la variabile non è stata valorizzata; isset() invece restituirà true se la variabile è stata valorizzata.
Eccone la sintassi:
<?php
$num = 6;
if (isset ($num)){
echo "Il tuo numero è: $num";
}else{
echo"Nessuna definizione";
}
?>
In questo caso, questa porzione di codice stamperà a video "Il tuo numero è: 6" in quanto la variabile $num è stata valorizzata. Nel caso in cui non lo fosse stata il codice ci avrebbe restituito: "Nessuna definizione".
- Articolo precedente Formattazione del testo tramite funzioni
- Articolo successivo PHP e VoiceXML (Parte I)