A logikai értékek nem szigorú összehasonlítása a PHP-ban
Az előző példában az összehasonlításhoz a
=== operátort használtam. Ebben az esetben a változónk
egyenlőségét hasonlította össze a true értékkel
érték és típus szerint is.
A feladatunkban használhatjuk a
== operátort is. Ha a test változóban
mindig a true vagy a false értékek egyike lesz, akkor semmi sem változik:
<?php
$test = true; // ide írunk vagy true-t, vagy false-t
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
De ha a $test változóba
bármilyen érték bekerülhet, akkor minden sokkal
bonyolultabbá válik. Ebben az esetben, ha a változóban
nem logikai érték lesz, akkor ez az érték
először logikai típusúra lesz konvertálva, és csak
azután kerül összehasonlításra.
Tegyük fel például, hogy a változónkban a
1 szám lesz. Ebben az esetben az először
logikai típusúra, azaz
true értékre lesz konvertálva. És azután végrehajtódik az összehasonlítás:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // ez fog lefutni, mert 1 == true igaz
} else {
echo '---';
}
?>
De például a 0 szám
false értékre konvertálódik.
És a feltételünk ennek eredményekénten hamis lesz:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // ez fog lefutni, mert 0 == true NEM igaz
}
?>
A kód futtatása nélkül határozd meg, hogy mit ír ki a képernyőre:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
A kód futtatása nélkül határozd meg, hogy mit ír ki a képernyőre:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
A kód futtatása nélkül határozd meg, hogy mit ír ki a képernyőre:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
A kód futtatása nélkül határozd meg, hogy mit ír ki a képernyőre:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
A kód futtatása nélkül határozd meg, hogy mit ír ki a képernyőre:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
A kód futtatása nélkül határozd meg, hogy mit ír ki a képernyőre:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>