Нестрого сравнение на логически стойности в PHP
В предишния пример използвах за сравнение
оператора ===. В този случай нашата променлива
се сравняваше за равенство 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 '---';
}
?>