Mitte-range loogiliste väärtuste võrdlemine PHP-s
Eelmises näites kasutasin võrdlemiseks
operaatorit ===. Sel juhul võrreldi meie muutujat
võrdsusega true nii
väärtuse kui ka tüübi poolest.
Meie ülesandes saab kasutada ka operaatorit
==. Kui muutujas test
on alati üks väärtustest true
või false, siis midagi ei muutu:
<?php
$test = true; // kirjutame siit kas true või false
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Kuid kui muutujasse $test võivad
sisestada mis tahes väärtused, siis muutub kõik
palju keerulisemaks. Sellisel juhul, kui muutujas
ei ole loogiline väärtus, teisendatakse see väärtus
kõigepealt loogiliseks ja alles seejärel
võrreldakse.
Oletame, et meie muutujas on näiteks
number 1. Sel juhul teisendatakse see kõigepealt
loogiliseks tüübiks, st
true-ks. Ja seejärel tehakse võrdlus:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // töötab see, sest 1 == true on õige
} else {
echo '---';
}
?>
Kuid näiteks number 0 teisendub
false-ks. Ja meie tingimus muutub tulemusena
vääraks:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // töötab see, sest 0 == true on vale
}
?>
Määrake, ilma koodi käivitamata, mis kuvatakse ekraanil:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Määrake, ilma koodi käivitamata, mis kuvatakse ekraanil:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Määrake, ilma koodi käivitamata, mis kuvatakse ekraanil:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Määrake, ilma koodi käivitamata, mis kuvatakse ekraanil:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Määrake, ilma koodi käivitamata, mis kuvatakse ekraanil:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Määrake, ilma koodi käivitamata, mis kuvatakse ekraanil:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>