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