Логические значения и двойное равно
В предыдущем примере я использовал для сравнения
оператор ===. В этом случае наша переменная
сравнивалась на равенство true как
по значению, так и по типу.
В нашей задаче можно использовать и оператор
==. Если в переменной test
всегда будет одно из значений true
или false, то ничего и не изменится:
<?php
$test = true; // тут пишем или true, или false
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
А вот если в переменную $test могут
попадать любые значения, то все становится
намного сложнее. В таком случае, если в переменной
будет не булево значение, то это значение
вначале будет преобразовано к булеву и только
затем будет сравниваться.
Пусть, например, в нашей переменной будет
число 1. В этом случае оно вначале
преобразуется к логическому типу, то есть
к true. И затем будет выполнено сравнение:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // сработает это, тк 1 == true - это верно
} else {
echo '---';
}
?>
А вот, к примеру, число 0 преобразуется
к false. И наше условие в результате
будет ложным:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // сработает это, тк 0 == true - это НЕверно
}
?>
Не запуская код, определите, что выведется на экран:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Не запуская код, определите, что выведется на экран:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Не запуская код, определите, что выведется на экран:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Не запуская код, определите, что выведется на экран:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Не запуская код, определите, что выведется на экран:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Не запуская код, определите, что выведется на экран:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>