Nenaporno poređenje logičkih vrednosti u PHP
U prethodnom primeru koristio sam operator
=== za poređenje. U tom slučaju naša promenljiva
se poredi sa true na jednakost
i po vrednosti i po tipu.
U našem zadatku može se koristiti i operator
==. Ako u promenljivoj test
uvek bude jedna od vrednosti true
ili false, onda se ništa neće promeniti:
<?php
$test = true; // ovde upisujemo ili true, ili false
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Međutim, ako u promenljivu $test mogu
da se nadju bilo kakve vrednosti, onda sve postaje
mnogo složenije. U tom slučaju, ako u promenljivoj
ne bude logička vrednost, onda će ta vrednost
prvo biti konvertovana u logički tip i tek
onda će se vršiti poređenje.
Recimo, na primer, da u našoj promenljivoj bude
broj 1. U tom slučaju on će prvo
biti konvertovan u logički tip, odnosno
u true. I zatim će se izvršiti poređenje:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // ovo će se pokrenuti, jer je 1 == true tačno
} else {
echo '---';
}
?>
S druge strane, na primer, broj 0 se konvertuje
u false. I naš uslov će, kao rezultat,
biti netačan:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // ovo će se pokrenuti, jer 0 == true je NEtačno
}
?>
Bez pokretanja koda, odredite šta će se ispisati na ekran:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Bez pokretanja koda, odredite šta će se ispisati na ekran:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Bez pokretanja koda, odredite šta će se ispisati na ekran:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Bez pokretanja koda, odredite šta će se ispisati na ekran:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Bez pokretanja koda, odredite šta će se ispisati na ekran:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Bez pokretanja koda, odredite šta će se ispisati na ekran:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>