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