Usawa kwa Thamani na Aina katika PHP
Wacha utake kulinganisha kwa njia ambayo nambari
kwenye alama za quotation isiwe sawa na nambari ile ile
bila alama za quotation. Kwa maneno mengine, unataka
kulinganisha kwa njia ambayo kulinganisha sio tu
kwa thamani, bali pia kwa aina ya data. Ili kufanya hivyo
badala ya kiendeshaji == tumia
kiendeshaji ===. Ulinganisho na kiendeshaji kama hicho
unaitwa mkali.
Angalia mfano:
<?php
if ('3' === 3) {
echo '+++';
} else {
echo '---'; // ndio kitakachofanya kazi, kwani thamani hazilingani kwa aina
}
?>
Lakini wakati wa kulinganisha masharti mawili '3'
kwenye skrini kitaonyeshwa '+':
<?php
if ('3' === '3') {
echo '+++'; // ndio kitakachofanya kazi
} else {
echo '---';
}
?>
Vivyo hivyo, wakati wa kulinganisha nambari:
<?php
if (3 === 3) {
echo '+++'; // ndio kitakachofanya kazi
} else {
echo '---';
}
?>
Tofauti kati ya viendeshaji viwili inaonekana hasa wakati thamani ni sawa, lakini aina ya data ni tofauti. Katika hali zingine zote viendeshaji hivi hufanya kazi sawa. Kwa mfano, wakati wa kulinganisha nambari tofauti, bila shaka, itaonyesha minus:
<?php
if (2 === 3) {
echo '+++';
} else {
echo '---'; // ndio kitakachofanya kazi
}
?>
Kwa sasa katika PHP imekubalika kwa ujumla kila mahali kutumia ulinganisho mkali. Inachukuliwa kuwa katika kesi hii msimbo unaathiriwa kidogo na makosa.
Bila kukimbiza msimbo, amua nini kitaonyeshwa kwenye skrini:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Bila kukimbiza msimbo, amua nini kitaonyeshwa kwenye skrini:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Bila kukimbiza msimbo, amua nini kitaonyeshwa kwenye skrini:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Bila kukimbiza msimbo, amua nini kitaonyeshwa kwenye skrini:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Bila kukimbiza msimbo, amua nini kitaonyeshwa kwenye skrini:
<?php
$test1 = 3;
$test2 = 3;
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>