Nestrogo primerjanje logičnih vrednosti v PHP
V prejšnjem primeru sem za primerjavo uporabil
operator ===. V tem primeru se je naša spremenljivka
primerjala za enakost true tako
po vrednosti kot po tipu.
V naši nalogi lahko uporabimo tudi operator
==. Če bo v spremenljivki test
vedno ena od vrednosti true
ali false, se nič ne spremeni:
<?php
$test = true; // tukaj napišemo ali true, ali false
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Če pa lahko v spremenljivko $test pridejo
kakršnekoli vrednosti, potem vse postane
veliko bolj zapleteno. V tem primeru, če v spremenljivki
ni logične vrednosti, bo ta vrednost
najprej pretvorjena v logično in šele
nato primerjana.
Recimo, da je v naši spremenljivki
število 1. V tem primeru se najprej
pretvori v logični tip, torej
v true. In nato bo izvedena primerjava:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // bo izpisalo to, ker je 1 == true pravilno
} else {
echo '---';
}
?>
Po drugi strani pa se število 0 pretvori
v false. In naš pogoj bo posledično
napačen:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // bo izpisalo to, ker je 0 == true NEpravilno
}
?>
Brez zaganjanja koda določi, kaj se bo izpisalo na zaslon:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Brez zaganjanja koda določi, kaj se bo izpisalo na zaslon:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Brez zaganjanja koda določi, kaj se bo izpisalo na zaslon:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Brez zaganjanja koda določi, kaj se bo izpisalo na zaslon:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Brez zaganjanja koda določi, kaj se bo izpisalo na zaslon:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Brez zaganjanja koda določi, kaj se bo izpisalo na zaslon:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>