Comparación no estricta de valores booleanos en PHP
En el ejemplo anterior usé para la comparación
el operador ===. En este caso, nuestra variable
se comparaba por igualdad con true tanto
por valor como por tipo.
En nuestra tarea se puede usar también el operador
==. Si en la variable test
siempre hay uno de los valores true
o false, entonces nada cambiará:
<?php
$test = true; // aquí escribimos o true, o false
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Pero si en la variable $test pueden
entrar cualquier tipo de valores, entonces todo se vuelve
mucho más complicado. En tal caso, si en la variable
hay un valor no booleano, este valor
primero se convertirá a booleano y solo
después se comparará.
Supongamos, por ejemplo, que en nuestra variable hay
el número 1. En este caso, primero
se convertirá al tipo lógico, es decir,
a true. Y luego se realizará la comparación:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // se activará esto, porque 1 == true es correcto
} else {
echo '---';
}
?>
Pero, por ejemplo, el número 0 se convierte
a false. Y nuestra condición como resultado
será falsa:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // se activará esto, porque 0 == true es incorrecto
}
?>
Sin ejecutar el código, determine qué se mostrará en la pantalla:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Sin ejecutar el código, determine qué se mostrará en la pantalla:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Sin ejecutar el código, determine qué se mostrará en la pantalla:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Sin ejecutar el código, determine qué se mostrará en la pantalla:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Sin ejecutar el código, determine qué se mostrará en la pantalla:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Sin ejecutar el código, determine qué se mostrará en la pantalla:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>