Comparação não estrita de valores booleanos em PHP
No exemplo anterior, usei para comparação
o operador ===. Neste caso, nossa variável
era comparada por igualdade com true
tanto em valor quanto em tipo.
Em nossa tarefa, também poderíamos usar o operador
==. Se na variável test
sempre for um dos valores true
ou false, então nada mudará:
<?php
$test = true; // aqui escrevemos ou true, ou false
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Mas se na variável $test puderem
entrar quaisquer valores, então tudo se torna
muito mais complexo. Nesse caso, se na variável
não estiver um valor booleano, esse valor
primeiro será convertido para booleano e só
então será comparado.
Suponha, por exemplo, que em nossa variável esteja
o número 1. Neste caso, ele primeiro
será convertido para o tipo lógico, ou seja,
para true. E então a comparação será executada:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // isto será executado, pois 1 == true é verdadeiro
} else {
echo '---';
}
?>
Já o número 0, por exemplo, é convertido
para false. E nossa condição, como resultado,
será falsa:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // isto será executado, pois 0 == true é FALSO
}
?>
Sem executar o código, determine o que será exibido na tela:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Sem executar o código, determine o que será exibido na tela:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Sem executar o código, determine o que será exibido na tela:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Sem executar o código, determine o que será exibido na tela:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Sem executar o código, determine o que será exibido na tela:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Sem executar o código, determine o que será exibido na tela:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>