PHP-da qiymat va tur tengligi
Faraz qilaylik, siz qo'shtirnoq ichidagi raqam
qo'shtirnoqsiz shu raqamga teng bo'lmasligini ta'minlashni
xohlaysiz. Boshqacha qilib aytganda, siz nafaqat qiymat,
balki ma'lumotlar turi bo'yicha ham taqqoslashni
xohlaysiz. Buning uchun
== operatori o'rniga
=== operatoridan foydalaning. Bu operator bilan
taqqoslash qat'iy taqqoslash deyiladi.
Misolnı ko'ring:
<?php
if ('3' === 3) {
echo '+++';
} else {
echo '---'; // ishlaydi, chunki qiymatlar turi bo'yicha teng emas
}
?>
Ammo ikkita satr '3'
taqqoslanganda ekranga '+++' chiqadi:
<?php
if ('3' === '3') {
echo '+++'; // ishlaydi
} else {
echo '---';
}
?>
Xuddi shu raqamlarni taqqoslashda:
<?php
if (3 === 3) {
echo '+++'; // ishlaydi
} else {
echo '---';
}
?>
Ikki operator o'rtasidagi farq aniq qiymatlar bir xil, ammo ma'lumotlar turi har xil bo'lganda namoyon bo'ladi. Boshqa hollarda bu operatorlar bir xil ishlaydi. Masalan, turli raqamlarni taqqoslashda, albatta, minus chiqadi:
<?php
if (2 === 3) {
echo '+++';
} else {
echo '---'; // ishlaydi
}
?>
Hozirgi vaqtda PHP da hamma joyda qat'iy taqqoslashdan foydalanish odat tusiga kirgan. Bunday holatda kod xatolarga kamroq moyil deb hisoblanadi.
Kodni ishlamasdan, ekranga nima chiqishini aniqlang:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Kodni ishlamasdan, ekranga nima chiqishini aniqlang:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Kodni ishlamasdan, ekranga nima chiqishini aniqlang:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Kodni ishlamasdan, ekranga nima chiqishini aniqlang:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Kodni ishlamasdan, ekranga nima chiqishini aniqlang:
<?php
$test1 = 3;
$test2 = 3;
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>