현재 위치: > 최신 기사 목록> PHP에서 개체를 비교하는 방법 : 다른 비교 연산자의 세부 사항을 설명

PHP에서 개체를 비교하는 방법 : 다른 비교 연산자의 세부 사항을 설명

gitbox 2025-06-17

1. 서문

객체 지향 PHP 응용 프로그램을 개발할 때는 종종 동등한 지 여부를 결정하는 것과 같은 두 객체를 비교해야합니다. 이 기사는 PHP에서 객체 비교를 수행하는 방법을 살펴보고 다양한 비교 연산자의 적용을 깊이 분석합니다.

2. PHP의 물체 비교

PHP는 객체의 속성 값이 동일한 개체인지, 다른 속성 값을 갖는지 여부를 결정하는 데 사용되는 ==,! =, ==,! ==와 같은 객체를 비교하기위한 다양한 연산자를 제공합니다.

일반적인 비교 연산자는 다음과 같습니다.

  • ==

    위의 예에서, $ obj1$ obj2 의 속성 값은 동일하기 때문에 출력 "두 객체는 ​​동일하다".

    2.2! = 연산자

    ! = 연산자는 == 함수와 반대이며 두 객체의 속성 값이 동일하지 않은지 여부를 결정하는 데 사용됩니다. 속성 값이 같지 않은 경우 true를 반환합니다. 그렇지 않으면 false를 반환하십시오.

     
    $obj1 = new stdClass();
    $obj2 = new stdClass();
    $obj1->name = '장 산';
    $obj1->age = 20;
    $obj2->name = 'Li Si';
    $obj2->age = 30;
    if ($obj1 != $obj2) {
        echo '두 객체의 속성 값은 동일하지 않습니다.';
    } else {
        echo '두 객체의 속성 값은 동일합니다';
    }
    

    이 예에서 $ obj1$ obj2 의 속성 값이 다르기 때문에 출력 "두 객체의 속성 값은 같지 않습니다".

    2.3 === 운영자

    === 연산자는 두 객체가 동일한 객체인지, 즉 동일한 메모리 주소를 가리키는 지 여부를 결정하는 데 사용됩니다. 동일한 객체 인 경우 True 를 반환하십시오. 그렇지 않으면 False를 반환하십시오.

     
    $obj1 = new stdClass();
    $obj2 = $obj1;
    if ($obj1 === $obj2) {
        echo '두 객체는 ​​같은 객체입니다';
    } else {
        echo '두 객체는 ​​같은 객체가 아닙니다';
    }
    

    이 예에서 $ OBJ2$ OBJ1 의 메모리 주소를 직접 가리키므로 "두 객체는 ​​동일한 객체"입니다.

    2.4! == 운영자

    ! == 연산자는 === 연산자와 대칭이며 두 객체가 동일한 객체인지 여부를 결정하는 데 사용됩니다. 두 객체가 다른 메모리 주소를 가리키면 true를 반환하고 그렇지 않으면 false를 반환합니다.

     
    $obj1 = new stdClass();
    $obj2 = $obj1;
    $obj3 = new stdClass();
    if ($obj1 !== $obj3) {
        echo '두 객체는 ​​같은 객체가 아닙니다';
    } else {
        echo '두 객체는 ​​같은 객체입니다';
    }
    

    이 예에서 $ OBJ1$ OBJ3 은 다른 메모리 주소를 가리므로 출력은 "두 객체가 동일한 객체가 아닙니다".

    3. 객체 비교의 원리

    PHP가 비교 연산자를 사용하여 객체를 비교하면 객체의 __toString () 메소드가 자동으로 호출되어 객체를 문자열로 변환하여 비교합니다. 객체 가이 방법을 구현하지 않으면 "캐치 가능한 치명적 오류"오류가 발생합니다.

    따라서 객체 비교를 수행 할 때 객체가 __toString () 메소드를 구현하는 것이 좋습니다. 그렇지 않으면 오류가 발생합니다. PHP는 방법이 아닌 객체의 속성 값을 비교한다는 점에 유의해야합니다.

    4. 요약

    이 기사는 비교를 위해 다양한 연산자를 사용하는 방법을 포함하여 PHP의 객체를 비교하는 방법을 소개합니다. 객체 비교를 수행 할 때 개발자는 객체의 속성 값에주의를 기울이고 오류를 피하기 위해 __toString () 메소드를 구현해야합니다.