Reikšmės ir tipo lygybė PHP
Tarkime, norite lyginti taip, kad skaičius
kabutėse nebūtų lygus tokiam pat skaičiui
be kabučių. Kitaip tariant, norite
lyginti taip, kad palyginimas būtų ne tik
pagal reikšmę, bet ir pagal duomenų tipą. Tam
vietoj operatoriaus == reikia naudoti
operatorių ===. Palyginimas su tokiu operatoriumi
vadinamas griežtu.
Žiūrėkite pavyzdį:
<?php
if ('3' === 3) {
echo '+++';
} else {
echo '---'; // veiks tai, nes reikšmės nėra lygios pagal tipą
}
?>
O čia, lyginant dvi eilutes '3'
ekrane bus išvesta '+++':
<?php
if ('3' === '3') {
echo '+++'; // veiks tai
} else {
echo '---';
}
?>
Taip pat, kaip ir lyginant skaičius:
<?php
if (3 === 3) {
echo '+++'; // veiks tai
} else {
echo '---';
}
?>
Skirtumas tarp šių dviejų operatorių pasireiškia būtent tada, kai reikšmės yra vienodos, bet skiriasi duomenų tipas. Kitais atvejais šie operatoriai veikia vienodai. Pavyzdžiui, lyginant skirtingus skaičius, žinoma, bus išvestas minusas:
<?php
if (2 === 3) {
echo '+++';
} else {
echo '---'; // veiks tai
}
?>
Šiuolaikiniame PHP visuotinai priimta visur naudoti griežtą palyginimą. Manoma, kad tokiu atveju kodas yra mažiau jautrus klaidoms.
Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Paleisdami kodą, nustatykite, kas bus išvesta į ekraną:
<?php
$test1 = 3;
$test2 = 3;
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>