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