PHP에서 값과 타입의 불일치
!= 연산자 외에도
비교 시 타입을 고려하는
!== 연산자가 있습니다.
예제를 통해 이 둘의 차이점을 살펴보겠습니다.
!= 연산자로
두 숫자 3을 비교한다고 합시다.
이 연산자는 값이 같지 '않은지' 비교합니다.
우리의 값은 정확히 같기 때문에
화면에 '-'가 출력될 것입니다:
<?php
if (3 != 3) {
echo '+++';
} else {
echo '---'; // 값이 같으므로 이 부분이 실행됩니다
}
?>
이제 값 중 하나를 따옴표로 감싸봅시다.
이 경우에도 != 연산자는
여전히 둘을 같다고 판단할 것입니다 (값이 일치하고,
이 연산자에게 타입은 중요하지 않기 때문입니다)
그리고 다시 '-'를 출력할 것입니다:
<?php
if ('3' != 3) {
echo '+++';
} else {
echo '---'; // 값이 같으므로 이 부분이 실행됩니다
}
?>
이제 !== 연산자를 사용하여
두 숫자 3을 비교해 봅시다.
이 연산자도 둘을 같다고 판단하여
'-'를 출력할 것입니다:
<?php
if (3 !== 3) {
echo '+++';
} else {
echo '---'; // 값이 같으므로 이 부분이 실행됩니다
}
?>
하지만 이제 숫자 3 중 하나를 따옴표로 감싸면,
!== 연산자는 우리의 두 3을
같지 않다고 판단할 것입니다. 왜냐하면 비록 값은 일치하지만,
타입이 다르기 때문입니다:
<?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 '---';
}
?>