PHP 비교 연산자
비교 연산자는 이름 그대로 두 값을 비교하도록 합니다. 자료형 비교표에서 다양한 자료형 관련 비교의 예제를 확인해 볼 수 있습니다.
예제 | 이름 | 결과 |
---|---|---|
$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 . |
정수를 문자열과 비교하면, 문자열이 수로 변환됩니다. 두개의 수 문자열을 비교하면, 정수로 비교됩니다. 이 규칙은 switch 구문에도 적용됩니다.
true var_dump("1" == "01"); // 1 == 1 -> true var_dump("1" == "1e0"); // 1 == 1 -> true switch ("a") { case 0: echo "0"; break; case "a": // never reached because "a" is already matched with 0 echo "a"; break; } ?>
다양한 자료형에 대해서, 비교는 다음 표에 따라 이루어집니다. (순서대로)
연산수 1의 자료형 | 연산수 2의 자료형 | 결과 |
---|---|---|
null이나 string | string | NULL 을 ""로 변환, 수치나 어휘 비교 |
bool이나 null | anything | bool로 변환, FALSE < TRUE |
object | object | 내장 클래스는 자신의 비교 함수를 정의할 수 있습니다. 다른 클래스는 비교할 수 없고, 같은 클래스는 배열과 같은 방식으로 프로퍼티를 비교합니다(PHP 4). PHP 5는 자체의 해석법을 가지고 있습니다. |
string, resource, number | string, resource, number | 문자열과 자원을 수로 변환하여, 일반적인 수학 |
array | array | 적은 멤버를 가진 배열이 작고, 연산수 1의 키가 연산수 2에서 발견되지 않으면 배열을 비교할 수 없고, 그렇지 않으면 - 값대 값으로 비교(아래 예제를 참고) |
array | 모두 | array가 항상 큽니다 |
object | 모두 | object가 항상 큽니다 |
Example #1 표준 배열 비교의 모사
php // 표준 비교 연산자로 배열은 이렇게 비교합니다 function standard_array_compare($op1, $op2) { if (count($op1) < count($op2)) { return -1; // $op1 < $op2 } elseif (count($op1) > count($op2)) { return 1; // $op1 > $op2 } foreach ($op1 as $key => $val) { if (!array_key_exists($key, $op2)) { return null; // uncomparable } elseif ($val < $op2[$key]) { return -1; } elseif ($val > $op2[$key]) { return 1; } } return 0; // $op1 == $op2 } ?>
'Etc > 보관함' 카테고리의 다른 글
[Java] 쿠키 관련 함수 ( setCookie, getCookie ) (0) | 2014.01.28 |
---|---|
[jQuery] 제이쿼리 인클루드 (0) | 2014.01.28 |
티스토리 블로그 네이버 검색 등록 (0) | 2014.01.28 |
티스토리 서식 테스트 샘플 (0) | 2014.01.27 |
티스토리 소스 코드 포스팅 syntaxhighlighter (0) | 2014.01.27 |