Kulinganisha kwa Mfumo wa Kupooza Thamani za Boolean katika PHP
Katika mfano uliopita nilitumia kwa kulinganisha
kiendeshaji ===. Katika hali hii, tofauti yetu
ilinganishwa kwa usawa true kwa
thamani na kwa aina.
Katika shida yetu tunaweza pia kutumia kiendeshaji
==. Ikiwa katika tofauti test
daima itakuwa na moja ya thamani true
au false, basi hakuna kitakachobadilika:
<?php
$test = true; // hapa tunaandika ama true, ama false
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Lakini ikiwa kwenye tofauti $test
inavezeka kupata thamani yoyote, basi kila kitu kinakuwa
magumu zaidi. Katika hali kama hiyo, ikiwa kwenye tofauti
haitakuwa na thamani ya boolean, basi thamani hiyo
kwanza itabadilishwa kuwa boolean na kisha tu
italinganishwa.
Tuseme, kwa mfano, kwenye tofauti yetu itakuwa
nambari 1. Katika hali hii kwanza
itabadilishwa kuwa aina ya boolean, yaani
kuwa true. Na kisha kulinganisha kutafanyika:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // hii itafanya kazi, kwa sababu 1 == true - ni sahihi
} else {
echo '---';
}
?>
Lakini, kwa mfano, nambari 0 inabadilika
kuwa false. Na hali yetu kwa matokeo
itakuwa ya uwongo:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // hii itafanya kazi, kwa sababu 0 == true - HAIsi sahihi
}
?>
Bila kukimbia kificho, amua, nini kitaonyeshwa kwenye skrini:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Bila kukimbia kificho, amua, nini kitaonyeshwa kwenye skrini:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Bila kukimbia kificho, amua, nini kitaonyeshwa kwenye skrini:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Bila kukimbia kificho, amua, nini kitaonyeshwa kwenye skrini:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Bila kukimbia kificho, amua, nini kitaonyeshwa kwenye skrini:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Bila kukimbia kificho, amua, nini kitaonyeshwa kwenye skrini:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>