Confronto non rigoroso dei valori booleani in PHP
Nell'esempio precedente ho utilizzato per il confronto
l'operatore ===. In questo caso la nostra variabile
veniva confrontata per uguaglianza con true
sia per valore che per tipo.
Nel nostro problema possiamo utilizzare anche l'operatore
==. Se nella variabile test
ci sarà sempre uno dei valori true
o false, allora nulla cambierà:
<?php
$test = true; // qui scriviamo o true, o false
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Ma se nella variabile $test possono
finire valori qualsiasi, allora tutto diventa
molto più complicato. In tal caso, se nella variabile
ci sarà un valore non booleano, questo valore
verrà prima convertito in booleano e solo
dopodiché verrà confrontato.
Supponiamo, ad esempio, che nella nostra variabile ci sia
il numero 1. In questo caso verrà prima
convertito al tipo logico, cioè
a true. E poi verrà eseguito il confronto:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // questo funzionerà, poiché 1 == true è corretto
} else {
echo '---';
}
?>
Invece, ad esempio, il numero 0 si converte
in false. E la nostra condizione di conseguenza
risulterà falsa:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // questo funzionerà, poiché 0 == true NON è corretto
}
?>
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Senza eseguire il codice, determina cosa verrà visualizzato sullo schermo:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>