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