PHP
13. PHP 비교 연산자
drizzle0925
2021. 3. 2. 20:33
728x90
비교 연산자(comparison operator)
비교 연산자는 연산자들을 비교하는 연산자로 연산자의 크기를 판단하고 그 값을 참(true)과 거짓(false)으로 반환한다.
비교 연산자는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽이다.
비교 연산자 | 예시 | 설명 |
== | $x == $y | 왼쪽값과 오른쪽값이 같으면 참을 반환 |
=== | $x === $y | 왼쪽값과 오른쪽값이 같고 데이터타입이 같으면 참을 반환함 |
!= | $x != $y | 왼쪽값과 오른쪽값이 다르면 참을 반환 |
!== | $x !== $y | 왼쪽값과 오른쪽값이 다르거나 데이터 타입이 같지않으면 참을 반환 |
<> | $x <> $y | 왼쪽값과 오른쪽값이 다르면 참을 반환 |
< | $x < $y | 왼쪽값이 오른쪽값보다 작으면 참을 반환 |
<= | $x <= $y | 왼쪽값이 오른쪽값보다 낮거나 같으면 참을 반환 |
> | $x > $y | 왼쪽값이 오른쪽값보다 크면 참을 반환 |
>= | $x >= $y | 왼쪽값이 오른쪽값보다 크거나 같으면 참을 반환 |
1
2
3
4
5
6
7
8
9
10
11
|
<?php
var_dump(3 == 3.0); // true
echo "<br>";
var_dump(3 === 3.0); // false
echo "<br>";
var_dump(3 == "3"); // true
echo "<br>";
var_dump(3 === "3"); // false
echo "<br>";
var_dump(3 !== "3"); // ture
?>
|
cs |
동등 연산자(equal) ==
일치 연산자(strict equal) ===
다양한 타입 비교
피연산자1 | 피연산자2 | 비교 규칙 |
bool, null | 모두 | 둘 다 불리언으로 변환환 후 비교 |
string, resource, integer, float |
string, resource, integer, float |
숫자로 시작하는 문자열과 리소스는 숫자로 변환후 비교 |
object | object | 내장 클래스는 비교함수를 정의할 수 있으나 다른 클래스와는 비교 불가 |
array | array | 배열끼리의 비교는 같은 키를 가지는 값을 서로 비교함 $x(피연산자1)의 키가 $y(피연산자2)배열에 존재하지 않으면 비교할 수 없으며 배열 요소의 수가 적은 쪽이 작은것으로 판단됨 |
array | 모두 | 배열이 항상 큰 거로 판단됨 |
object | 모두 | 객체가 항상 큰거로 판단됨 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?php
var_dump(0 < true); // true
echo "<br>";
var_dump("12abc" == 12); // true
echo "<br>";
var_dump("12abc" === 12); // false
echo "<br>";
$arr1 = array("a" => 10);
$arr2 = array("a" => 5);
$arr3 = array("a" => 5, "c" => 7);
var_dump($arr1 >= $arr2); // true
echo "<br>";
var_dump($arr1 >= $arr3); // false
echo "<br>";
var_dump("문자열" < $arr1); // true
?>
|
cs |
1. 숫자 0은 불리언으로 false값이므로 true이다.
2. 숫자로 시작되는 문자열을 비교할 때는 숫자 12로 변환되어 비교된다.(맨 앞자리가 언더스코어(_)나 영문자로 시작되면 0으로 변환되어 비교된다.)
3. 문자열이 숫자로 변환되어도 타입은 변하지 않는다.
4. 배열의 길이가 같은 경우에는 같은 키를 가지는 값을 서로 비교한다.
5. 배열의 길이가 다른 경우에는 배열 요소의 수가 많은 쪽이 큰 값으로 판단된다.
6. 배열이랑 다른 타입을 비교하면 항상 배열이 크다고 판단한다.
728x90