Равенство по стойност и тип в 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 е общоприето навсякъде да се използва строго сравнение. Счита се, че в този случай кодът е по-малко податлив на грешки.
Без да пускате кода, определете какво ще се изведе на екрана:
<?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 '---';
}
?>