NOTA:

Nel mio primo esempio il test risulta :
------Sempre 'falso' se si assegna ad $a un valore diverso a 'TRUE'.

In quello di Gianni_T il test risulta:
------FALSO anche se si assegna ad $a 'NULL' come valore.
------VERO quando si assegna ad $a un qualsiasi valore nn booleano.


Onde evitare test falsi
sarebbe meglio usare:


Codice PHP:
if ($a === TRUE
 {
   echo 
"vero";
 }
 
else if(
$a === FALSE)
 {
   echo 
"falso";
 }
 
else
 {
   echo 
"non è un booleano";
 } 
o ancora meglio testare prima se $a è un bool con is_bool() dopodichè verificarne il valore...fai un po tu!