Неравенство по стойност и тип в PHP
Освен оператора != съществува и
оператор !==, който отчита типа при
сравнение. Нека разгледаме разликите между
тях с примери.
Нека с оператора != се сравняват
две числа 3. Този оператор сравнява
стойностите по това, че те НЕ са равни. Тъй като
нашите стойности всъщност са равни, на екрана
ще се изведе '-':
<?php
if (3 != 3) {
echo '+++';
} else {
echo '---'; // ще се изпълни това, тъй като стойностите са равни
}
?>
Нека сега една от нашите стойности да бъде
в кавички. В този случай операторът !=
все пак ще ги счита за равни (тъй като стойността
съвпада, а типът не е важен за този оператор)
и отново ще изведе '-':
<?php
if ('3' != 3) {
echo '+++';
} else {
echo '---'; // ще се изпълни това, тъй като стойностите са равни
}
?>
Нека сега сравним две числа 3
с оператора !==. Той също
ще ги счита за равни и ще изведе '-':
<?php
if (3 !== 3) {
echo '+++';
} else {
echo '---'; // ще се изпълни това, тъй като стойностите са равни
}
?>
Но ако сега една от тройките е в кавички,
тогава операторът !== ще счита нашите тройки
за неравни, тъй като, въпреки че стойностите им съвпадат,
те са с различен тип:
<?php
if ('3' !== 3) {
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 '---';
}
?>
Без да пускате кода, определете какво ще се изведе на екрана:
<?php
$test1 = 3;
$test2 = 2;
if ($test1 !== $test2) {
echo '+++';
} else {
echo '---';
}
?>