21'C 흐림
서울 강남구
결론부터 말하자면 이렇습니다.
== (Equal) : 단순 데이터 비교
=== (Identical) : 자료형까지 비교하여 보다 엄격히 비교
http://php.net/manual/kr/language.operators.comparison.php 에 따르면 아래와 같이 명시하고 있습니다.
$a == $b : $a와 $b가 같으면 TRUE.
$a === $b : $a와 $b와 같고, 같은 자료형이면 TRUE.
이를 통해 간단히 확인해보겠습니다.
<?php
$a = '1';
$b = 1;
if ($a == $b) {
echo 'true';
} else {
echo 'false';
}
?>
결과 : true
<?php
$a = '1';
$b = 1;
if ($a === $b) {
echo 'true';
} else {
echo 'false';
}
?>
결과 : false
만약 비교연산자의 대상이 Integer(정수형)와 Boolean(논리형) 이라면 == 비교연산자를 사용했을때
1과 0, true와 false 의 비교과정에서 원하지 않는 결과를 얻을 수 있습니다.
이러한 부분은 취약점이 되어 공격의 대상이 될 수 있기 때문에 === 비교연산자를 사용하는 것이 좋습니다.