PHPда қиймат ва тур ўзаро тенглик
Фароз қилайлик, сиз қошиқлар ичидаги сон
қошиқсиз шу сонга тенг бўлмаслигини тақозо қиласиз.
Бошқача қилиб айтганда, сиз солиштириш фақат
қийматга эмас, балки маълумот турига ҳам қараб
амалга оширилишини тақозо қиласиз. Буни амалга ошириш учун
== оператори ўрнига
=== операторини ишлатиш керак.
Бундай оператор билан солиштириш
қаттиқ деб номилади.
Мисолга назар солинг:
<?php
if ('3' === 3) {
echo '+++';
} else {
echo '---'; // ишлайди, чунки қийматлар тури бўйича тенг эмас
}
?>
Аммо икки қатор '3' солиштирилганда
экранда '+' чиқади:
<?php
if ('3' === '3') {
echo '+++'; // ишлайди
} else {
echo '---';
}
?>
Худди сонлар солиштирилгандаги каби:
<?php
if (3 === 3) {
echo '+++'; // ишлайди
} else {
echo '---';
}
?>
Икки оператор ўртасидаги фарқ айнан ўшанда намоён бўлади, қачонки қийматлар ўзаро бир хил, лекин маълумот тури ҳар хил бўлса. Қолган ҳолатларда бу операторлар бир хил ишлайди. Масалан, турли сонлар солиштирилганда, албатта, минус чиқади:
<?php
if (2 === 3) {
echo '+++';
} else {
echo '---'; // ишлайди
}
?>
Ҳозирги вақтда PHP да қаттиқ солиштиришни ишлатиш ҳамма жойда қабул қилинган. Бундай ҳолда кодда хатолар камрок бўлиши ҳисобланади.
Кодни ишлатмасдан, экранда чиқадиган нарсани аниқланг:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Кодни ишлатмасдан, экранда чиқадиган нарсани аниқланг:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Кодни ишлатмасдан, экранда чиқадиган нарсани аниқланг:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Кодни ишлатмасдан, экранда чиқадиган нарсани аниқланг:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Кодни ишлатмасдан, экранда чиқадиган нарсани аниқланг:
<?php
$test1 = 3;
$test2 = 3;
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>