Нестрогае параўнанне лагічных значэнняў у 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 '---';
}
?>