Неравенство по значению и типу в 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 '---';
}
?>