PHPда логик қийматларни нотўғри солиштириш
Олдинги мисолда мен солиштириш учун
=== операторини ишлатганман.
Бунда бизнинг ўзгарувчимиз true
билан ҳам қиймат, ҳам тур жиҳатидан
тенгликка солиштирилди.
Бизнинг масаламизда == операторини
ҳам ишлатиш мумкин. Агар test
ўзгарувчисида ҳар доим true
ёки false қийматларнинг бири
турса, у ҳолда ҳеч нарса ўзгармайди:
<?php
$test = true; // бу ерда ёки true, ёки false ёзамиз
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Аммо агар $test ўзгарувчисига
ҳар қандай қийматлар тушуши мумкин бўлса,
у ҳолда ҳамма нарса жуда мураккаб бўлиб
қолади. Бундай ҳолда, агар ўзгарувчида
мантиқий бўлмаган қиймат бўлса, у қиймат
аввал мантиқий турга ўгирилади ва фақат
шундан сўнг солиштирилади.
Масалан, бизнинг ўзгарувчимизда
1 сани турсин. Бунда у аввал
мантиқий турга, яъни true га
ўгирилади. Ва сўнгра солиштириш бажарилади:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // бу ишлайди, чунки 1 == true - тўғри
} else {
echo '---';
}
?>
Аммо, масалан, 0 сани
false га ўгирилади. Ва бизнинг
шартимиз натижада ёлғон бўлади:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // бу ишлайди, чунки 0 == true - нотўғри
}
?>
Кодни ишлатмасдан, экранга нама чиқишини аниқланг:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Кодни ишлатмасдан, экранга нама чиқишини аниқланг:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Кодни ишлатмасдан, экранга нама чиқишини аниқланг:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Кодни ишлатмасдан, экранга нама чиқишини аниқланг:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Кодни ишлатмасдан, экранга нама чиқишини аниқланг:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Кодни ишлатмасдан, экранга нама чиқишини аниқланг:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>