Negriežtas loginių reikšmių palyginimas PHP
Ankstesniame pavyzdyje palyginimui naudojau
operatorių ===. Šiuo atveju mūsų kintamasis
būdų lyginamas su true kaip
pagal reikšmę, taip ir pagal tipą.
Mūsų uždavinyje galima naudoti ir operatorių
==. Jei kintamajame test
visada bus viena iš reikšmių true
arba false, tai niekas ir nepasikeis:
<?php
$test = true; // čia rašome arba true, arba false
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
O jei į kintamąjį $test gali
patekti bet kokios reikšmės, tai viskas tampa
daug sudėtingesnė. Tokiu atveju, jei kintamajame
bus ne loginė reikšmė, tai ši reikšmė
pirmiausia bus konvertuojama į loginę ir tik
tada bus lyginama.
Tarkime, pavyzdžiui, mūsų kintamajame bus
skaičius 1. Šiuo atveju jis pirmiausia
bus konvertuojamas į loginį tipą, tai yra
į true. Ir tada bus atliktas palyginimas:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // suveiks tai, nes 1 == true - tai teisinga
} else {
echo '---';
}
?>
O, pavyzdžiui, skaičius 0 konvertuojasi
į false. Ir mūsų sąlyga dėl to
bus klaidinga:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // suveiks tai, nes 0 == true - tai NEteisinga
}
?>
Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>