>  기사  >  백엔드 개발  >  PHP 객체 비교

PHP 객체 비교

伊谢尔伦
伊谢尔伦원래의
2016-11-23 13:54:241001검색

PHP 5의 객체 비교는 PHP 4보다 더 복잡하며 원하는 결과는 객체 지향 언어와 더 일치합니다.

비교 연산자(==)를 사용하여 두 개체 변수를 비교할 때 비교 원칙은 두 개체의 속성과 속성 값이 동일하고 두 개체가 동일한 인스턴스인 경우입니다. class, 그러면 두 개체 변수가 동일합니다.

항등 연산자(===)를 사용하는 경우 이 두 객체 변수는 특정 클래스의 동일한 인스턴스(즉, 동일한 객체)를 가리켜야 합니다.

위의 원칙은 다음 예를 통해 이해할 수 있습니다.

예제 #1 PHP 5의 객체 비교

<?php
function bool2str($bool)
{
    if ($bool === false) {
        return &#39;FALSE&#39;;
    } else {
        return &#39;TRUE&#39;;
    }
}
function compareObjects(&$o1, &$o2)
{
    echo &#39;o1 == o2 : &#39; . bool2str($o1 == $o2) . "\n";
    echo &#39;o1 != o2 : &#39; . bool2str($o1 != $o2) . "\n";
    echo &#39;o1 === o2 : &#39; . bool2str($o1 === $o2) . "\n";
    echo &#39;o1 !== o2 : &#39; . bool2str($o1 !== $o2) . "\n";
}
class Flag
{
    public $flag;
    function Flag($flag = true) {
        $this->flag = $flag;
    }
}
class OtherFlag
{
    public $flag;
    function OtherFlag($flag = true) {
        $this->flag = $flag;
    }
}
$o = new Flag();
$p = new Flag();
$q = $o;
$r = new OtherFlag();
echo "Two instances of the same class\n";
compareObjects($o, $p);
echo "\nTwo references to the same instance\n";
compareObjects($o, $q);
echo "\nInstances of two different classes\n";
compareObjects($o, $r);
?>

위 루틴은 다음을 출력합니다.

Two instances of the same class
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : FALSE
o1 !== o2 : TRUE
Two references to the same instance
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE
Instances of two different classes
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

참고:

다음에서 사용할 수 있습니다. PHP 확장 객체 비교의 원칙을 직접 정의하십시오.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP 유형 제약다음 기사:PHP 유형 제약