비교 연산자
예제
|
이름
|
결과
|
$a == $b
|
Equal
|
$a와 $b가 같으면 TRUE.
|
$a === $b
|
Identical
|
$a와 $b가 같고, 같은 자료형이면 TRUE. (PHP 4에서 추가)
|
$a != $b
|
Not equal
|
$a가 $b와 같지 않으면 TRUE.
|
$a <> $b
|
Not equal
|
$a가 $b와 같지 않으면 TRUE.
|
$a !== $b
|
Not identical
|
$a가 $b와 같지 않거나, 같은 자료형이 아니면 TRUE. (PHP 4에서 추가)
|
$a < $b
|
Less than
|
$a가 $b보다 작으면 TRUE.
|
$a > $b
|
Greater than
|
$a가 $b보다 크면 TRUE.
|
$a <= $b
|
Less than or equal to
|
$a가 $b보다 작거나 같으면 TRUE.
|
$a >= $b
|
Greater than or equal to
|
$a가 $b보다 크거나 같으면 TRUE. |
(출처 php메뉴얼
http://www.php.net/manual/kr/language.operators.comparison.php)
연산자 중에서 === 이라는 equal을 3번이나 쓴 연산자가 있길래, 찾아보다가 포스팅 해보게 되었다.
서로의 값이 같고, 자료형까지 같아야 true를 반환하는 연산자가 있을줄이야....
좀더 자세히 알고 싶다면 위의 출처 링크로 가보면 된다.
이 연산자를 알게 된 경위는 이렇다.
php 함수중에 strpos( "검색될문자열", "검색할문자") 라는 문자열 검색 함수가 있다.
이 함수는 찾은 문자의 위치를 반환 한다. 그리고 문자의 위치는 0부터이다..
그렇다. 만약 찾은 문자가 처음부터 나온다면 0이 반환되고
if( $position = strpos( "abc", "a" ) )
{
echo "찾는 문자열은".($position+1)."번째에 있습니다. ";
}
라는 식으로 쓰게 되면, 0이 반환되어 계속 실패된 것과 같은 효과만 나오게 되어, 필자는 편법으로..
if( $position = strpos( "^"."abc", "a" ) )
{
echo "찾는 문자열은 $position 번째에 있습니다. ";
}
이런식으로 찾는 문자열에 임의로 찾는 문자열과는 관계 없는 특수문자를 하나 맨 앞에 붙여 주곤 했다.( 이런식의 편법일 경우, 찾는 문자가 우연히 앞에 붙여둔 특문과 일치한다면, 결국 실패가 되버린다.. )
하지만 === 연산자를 이용하면
if( ($position = strpos( "abc", "a" )) !== false )
{
echo "찾는 문자열은".($position+1)."번째에 있습니다. ";
}
이런 식으로 결과가 0이라도 false와 구별해 주기 때문에 원하는 결과를 얻을수 있다.