Web
Php 분류

PHP 비교 연산자

작성자 정보

  • console 작성
  • 작성일

컨텐츠 정보

본문

비교 연산자(comparison operator)

비교 연산자는 피연산자 사이의 상대적인 크기를 판단하여, 참(true)과 거짓(false)을 반환합니다.

비교 연산자는 모두 두 개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽입니다.

비교 연산자 설명
== 왼쪽의 피연산자와 오른쪽의 피연산자가 같으면 참을 반환함.
=== 왼쪽의 피연산자와 오른쪽의 피연산자가 같고, 같은 타입이면 참을 반환함. (PHP 4에서 추가됨)
!= 왼쪽의 피연산자와 오른쪽의 피연산자가 같지 않으면 참을 반환함.
<> 왼쪽의 피연산자와 오른쪽의 피연산자가 같지 않으면 참을 반환함.
!== 왼쪽의 피연산자와 오른쪽의 피연산자가 같지 않거나, 타입이 다르면 참을 반환함. (PHP 4에서 추가됨)
< 왼쪽의 피연산자가 오른쪽의 피연산자보다 작으면 참을 반환함.
<= 왼쪽의 피연산자가 오른쪽의 피연산자보다 작거나 같으면 참을 반환함.
> 왼쪽의 피연산자가 오른쪽의 피연산자보다 크면 참을 반환함.
>= 왼쪽의 피연산자가 오른쪽의 피연산자보다 크거나 같으면 참을 반환함.

 

!=와 <> 연산자는 정확히 같은 동작을 하며, 연산자의 우선순위에서만 차이가 발생합니다.

 

예제

$num_01 = 3;
$num_02 = 3.0;
$num_03 = 3;


var_dump($num_01 == $num_02);  // true

var_dump($num_01 === $num_02); // false
var_dump($num_01 != $num_03);  // false

코딩연습 ▶

 

위의 예제에서 변수 $num_01과 $num_02의 값은 3으로 서로 같지만, 타입은 각각 정수와 실수로 서로 다릅니다.

따라서 동등 연산자(==, equal)와 일치 연산자(===, strict equal)의 결과가 다르게 반환됩니다.


다양한 타입의 비교

PHP에서는 다양한 타입의 값을 서로 비교해야 할 때 다음 규칙에 따라 비교합니다.

피연산자1 피연산자2 비교 규칙
bool, null 모두 둘 다 불리언으로 변환한 후 비교함. (false < true)
string,
resource,
integer, float
string,
resource,
integer, float
숫자로 시작하는 문자열과 리소스는 숫자로 변환한 후 비교함.
object object 내장 클래스는 자신의 비교 함수를 정의할 수 있으나, 다른 클래스끼리 비교할 수는 없음.
array array

배열끼리의 비교는 같은 키를 가지는 값을 서로 비교함.

이때 피연산자1 배열의 키가 피연산자2 배열에 존재하지 않으면 비교할 수 없으며, 배열 요소의 수가 적은 쪽이 작은 거로 판단됨.

array 모두 배열이 항상 큰 거로 판단됨.
object 모두 객체가 항상 큰 거로 판단됨.

 

예제

① var_dump(0 < true);           // true

② var_dump("123abc" == 123);    // true

③ var_dump("123abc" === 123);   // false

 

$arr_01 = array("a" => 10);

$arr_02 = array("a" => 5);

$arr_03 = array("a" => 5"c" => 7);

 

④ var_dump($arr_01 >= $arr_02); // true

⑤ var_dump($arr_01 >= $arr_03); // false

⑥ var_dump("문자열" < $arr_01); // true

코딩연습 ▶

 

위 예제의 ①번 라인에서는 불리언 타입과 숫자 0을 비교하므로, 숫자 0은 불리언 false 값으로 변환되어 비교됩니다.

②번 라인에서는 문자열과 숫자를 비교하므로, 숫자로 시작되는 문자열 "123abc"는 숫자 123으로 변환되어 비교됩니다.

이때 만약 문자열이 위의 예제처럼 숫자가 아닌 영문자나 언더스코어(_)로 시작하면, 숫자 0으로 변환되어 비교될 것입니다.

하지만 ③번 라인에서 알 수 있듯이 문자열이 숫자로 변환되어 비교된다고 해도 해당 타입까지 변하는 것은 아닙니다.

 

위 예제의 ④번 라인에서는 배열끼리 비교하므로, 배열의 길이가 같은 경우에는 같은 키를 가지는 값을 서로 비교합니다.

하지만 ⑤번 라인처럼 배열의 길이가 다른 경우에는 배열 요소의 수가 적은 쪽이 작다고 판단됩니다.

⑥번 라인에서처럼 배열이랑 다른 타입을 비교하면, 언제나 배열이 크다고 판단됩니다.

관련자료

댓글 0
등록된 댓글이 없습니다.
전체 40 / 1 페이지
RSS
  • 웹개발에 자주 쓰는 자바스크립트 라이브러리들 - 슬라이드/갤러리 (Carousel)
    등록자 tjslli
    등록일 05.08 조회 1708

    Html 슬라이드/갤러리 (Carousel) 01. 가장 유명한 Slick - https://kenwheeler.github.io/slick/ 설치 &l…

  • [CSS]css 가상 선택자 정리 및 비교 (nth-child, nth-of-type)
    등록자 CSS러버
    등록일 05.08 조회 1621

    Html :nth-child(N)= 부모안에 모든 요소 중 N번째 요소 A:nth-of-type(N)= 부모안에 A라는 요소 중 N번째 요소 :first…

  • 스크롤 이벤트 감지 + jquery + css
    등록자 webveloper
    등록일 04.15 조회 1733

    Html 1. css .caritem{display:flex;align-items:end;flex-direction:column;background:#0…

  • slick slider 커스텀으로 꾸미기 + jquery 이벤트 감지 + 커스텀 슬라이드 번호
    등록자 webveloper
    등록일 04.15 조회 1771

    Html 1. import <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.n…

  • 호버(hover) 할 때 jquery 이벤트 감지 방법
    등록자 webveloper
    등록일 04.15 조회 1782

    Html 안녕하세요. html 코딩 시 hover 할때 감지하는 이벤트 스크립트입니다. <style> .con-group { display: …

  • 그누보드 썸네일 이미지 화질 개선 방법
    등록자 PixelProphet
    등록일 01.10 조회 2730

    Php 그누보드에서 이미지를 올릴때, 간혹 이미지 화질이 떨어져 보이는 현상이 있습니다.... 이럴 때 제가 찾아본 방법 중에 가장 쉽게 해결 할 수 …

  • React 유튜브 채널 추천
    등록자 코드워리어
    등록일 01.09 조회 2192

    React React는 웹 개발에서 매우 인기 있는 라이브러리로, 학습을 위해 다양한 자료들이 필요합니다. React를 학습하고 싶은 분들을 위한 유튜버 …

  • PHP 배열의 기초
    등록자 console
    등록일 01.05 조회 2521

    Php 배열(array)이란? PHP에서 배열(array)은 맵(map)으로 이루어진, 순서가 있는 집합을 의미합니다. 맵(map)은한 쌍의 키(key…

  • PHP 기타 제어문
    등록자 console
    등록일 01.05 조회 2553

    Php 루프의 제어 일반적으로 조건식의 검사를 통해 루프로 진입하면,다음 조건식을검사하기 전까지 루프 안에 있는 모든 명령문을 실행합니다. 사용자는 c…

  • PHP 반복문
    등록자 console
    등록일 01.05 조회 2525

    Php 반복문 반복문이란 프로그램 내에서 같은 명령을 일정 횟수만큼 반복하여수행하는명령문입니다. 프로그램이 처리하는 대부분의코드는 반복적인 형태가 많으…

  • PHP 조건문
    등록자 console
    등록일 01.05 조회 2377

    Php PHP 표현식 표현식(expressions)은 PHP에서 가장 중요한 구성요소입니다. 표현식이란 모든 것이 값을 갖는다는 의미이며, PHP에서 …

  • PHP 기타 연산자
    등록자 console
    등록일 01.05 조회 2343

    Php 삼항 연산자(ternaryoperator) 삼항 연산자는 유일하게 피연산자를 세 개나 가지는 조건 연산자입니다. 삼항 연산자의 문법은 다음과 같…

  • PHP 비트 연산자
    등록자 console
    등록일 01.05 조회 2553

    Php 비트 연산자(bitwise operator) 비트 연산자는 논리 연산자와 비슷하지만, 비트(bit) 단위로 논리 연산을 수행합니다. 또한, 비트…

  • PHP 논리 연산자
    등록자 console
    등록일 01.05 조회 2609

    Php 논리 연산자(logical operator) 논리 연산자는 논리식을 판단하여, 참(true)과 거짓(false)을 반환합니다. and, or, …

  • PHP 비교 연산자
    등록자 console
    등록일 01.05 조회 2626

    Php 비교 연산자(comparisonoperator) 비교 연산자는피연산자사이의 상대적인 크기를 판단하여,참(true)과 거짓(false)을 반환합니…