Corsi on-line

PHP: FALSE e NULL non sono sinonimi

Condivido il discorso fatto da Tom Rawcliffe sul suo blog secondo il quale nello sviluppo di applicazioni PHP si tende molto spesso a confondere NULL con FALSE utilizzandoli in modo intercambiabile; un esempio di questa pratica può essere il caso seguente:

$var = isset($_GET['var']) ? $_GET['var'] : false

Il codice proposto non fa altro che verificare l’esistenza o meno di una variabile attraverso l’operatore ternario dove ? e : identificano rispettivamente l’istruzione per il TRUE (?) e quella per il FALSE (:), esattamente come accade nei costrutti condizionali:

public function pippo()
{
    if ($this->pluto()) {
        echo "Stampa questa riga.";
    }
    else {
        return false;
    }
}

Il problema sta nel fatto che in PHP vi sono funzioni per le quali l’interpretazione del valore di ritorno può generare confusioni, si pensi per esempio ad isset() che restituisce TRUE nel caso in cui una variabile sia stata effettivamente definita o sia diversa da NULL, FALSE in tutti gli altri casi (e cioè anche quando è NULL).

Per evitare confusioni può essere utile ricordare la differenza tra NULL e FALSE, il primo infatti rappresenta l’assenza di un valore, il secondo è il risultato di un confronto booleano che può restiruire soltanto TRUE o FALSE.

Post correlati
I più letti del mese
Tematiche