Роўнасць па значэнні і тыпу ў 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 '---';
}
?>